Я новичок в Spring Boot и все еще пытаюсь понять лучшие практики. Что меня привлекло, так это Spring Cloud Configuration. Сначала я хотел сделать гибридную реализацию (из-за размера существующей кодовой базы) Spring Boot, но это неизбежно привело меня к куче запаха кода и анти-паттернов.
До Spring я управлял своими собственными объектами, но я быстро понял, что Spring хочет получить полный контроль над созданием экземпляров объектов и владением ими там, где есть внедрение зависимостей (что я понимаю). Однако в некоторых случаях я не могу позволить Spring полностью управлять, но все еще зависит от конфигурации (например, еще один фреймворк, отвечающий за управление объектами).
Я не хочу делать сценарий одноразового использования, когда я в конечном итоге передаю конфигурацию через цепочку конструкторов, и я хочу избежать использования AutowireCapableBeanFactory::autoWireBean(...)
для ручного связывания моих bean-компонентов. В то же время полагаться на Spring для ручной инициализации всех моих объектов - неприятность. Чтобы было ясно, это то, о чем я говорю:
@SomeOtherFrameworkThatOwnsThisObject
@Configuration
public class SomeClassDeepInMyProject implements SomeKindOfInterface {
@Autowired
private ConfigurationController config;
...
}
Я подумал о создании поставщика одноэлементной конфигурации, который будет доступен для всего приложения, и вручную подключит компонент конфигурации к классу. Если есть лучшая альтернатива, я весь в ушах.