Я пытаюсь автоматически соединить bean-компонент внутри класса Singleton, я знаю, что всегда лучше избегать ручного автоматического подключения, но этот класс используется во многих местах, поэтому я не хочу менять вызывающего его класс.
Бегунок. java
@Component
public class RunnerClass {
@Autowired
public ConfigService configService;
}
ConfigService. java
@Service
public class ConfigService {
private ConfigServiceDAO = ConfigServiceDAO.getInstance();
}
ConfigServiceDAO. java
public class ConfigServiceDAO {
//Bean I want to autowire here....
@Autowired
ConfigServiceDAOBuilder DAOBuilder
public static ConfigServiceDAO getInstance() {
return SingletonHolder.INSTANCE;
}
private static class SingletonHolder {
public static final ConfigServiceDAO INSTANCE = new ConfigServiceDAO();
private SingletonHolder() {}
}
}
DAOBuilder внутри ConfigServiceDAO всегда имеет значение null, что имеет смысл, поскольку, насколько я понимаю, когда экземпляр класса создается вручную, инжекция пружины не происходит. Какое решение может быть здесь, если я хочу сохранить ConfigServiceDAO в качестве не пружинного компонента?
==== EDIT ==== Я знаю, что можно сделать ConfigServiceDAO в качестве пружинного компонента и автоматически связать все зависимости. Но многие классы из разных пакетов уже вызывают ConfigServiceDAO.getInstance (). SomeMethod () Поэтому, я думаю, правильный вопрос заключается в том, как лучше всего связать компонент Spring с классом, который создается вручную.