Позволяя Spring Boot управлять временем жизни моих объектов - PullRequest
0 голосов
/ 11 июля 2019

Я новичок в 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;

    ...
}

Я подумал о создании поставщика одноэлементной конфигурации, который будет доступен для всего приложения, и вручную подключит компонент конфигурации к классу. Если есть лучшая альтернатива, я весь в ушах.

...