考虑以下代码:
@Service
class UserSpecificService {
@Autowired ServiceA serviceA;
@Autowired ServiceB serviceB;
@Autowired User user;
public void doUserSpecificThings() {
// consume serviceA, serviceB and user here
}
}
@Service class ServiceA {}
@Service class ServiceB {}
@Service
class Facade {
public void doThingsForUser(Long userId) {
User user = userService.getById(userId);
UserSpecificService userSpecificService = ...; // !!!
userSpecificService.doUserSpecificThings();
}
}
问题是关于标有 的行// !!!
。有什么方法可以UserSpecificService
在不实现我自己的工厂的情况下构建,它知道ServiceA
andServiceB
并且只需要一个实例User
来实例化 a UserSpecificService
?
如果这很重要 - 我将使用Facade
Spring MVC,尽管我不希望它依赖于此。
谢谢!