Я думал о некоторых своих услугах. Некоторые из них выглядят так:
@Service
public class UserService {
@Autowired
UserDao dao;
@Autowired
OtherService1 serv1;
@Autowired
OtherService2 serv2;
@Autowired
OtherService3 serv3;
....
}
Я подумал... если эта концепция автосвязывания других сервисов в один сервис довольно распространена, почему бы не создать "мастер-сервис":
@Service
public class MasterService {
@Autowired
OtherService1 serv1;
@Autowired
OtherService2 serv2;
@Autowired
OtherService3 serv3;
...
@Autowired
LastService servN;
}
и автопроводка этого сервиса во все сервисы.
@Service
public class AnyService {
@Autowired
MasterService masterSevice;
}
таким образом, у нас не будет много сервисов на сервис, а будет только один, чтобы управлять ими всеми.
Возникает два вопроса:
1) Так как masterService содержит все сервисы, у нас есть цикл инъекций. мы можем решить это?
2) если ответ на вопрос 1 "да" - это "masterService" хорошая практика?