次のコードを検討してください。
@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
ServiceB
User
UserSpecificService
重要な場合-Facade
これに依存しないようにしたいのですが、SpringMVCでを使用します。
ありがとう!