Как создавать ленивые волшебные бобы, похожие на спрингбут - PullRequest
0 голосов
/ 06 мая 2019

Spring boot имеет волшебную автоматическую конфигурацию.

Например, если я определяю DataSource @Bean в моем @Configuration, он принимает его, если я этого не делаю, он пытается что-то создать, просматривая файлы свойств и путь к классам.

Если у меня есть H2 в classpath, он создает в памяти db с подключением. Если нет, он может подключиться к mysql или mongo в зависимости от конфигурации

Как мне сделать это в моих собственных bean /code?

Если я определяю bean-компоненты / конфигурацию, мне также может потребоваться определить компонентное сканирование. Это становится проблематичным, если мой сервис зависит от повторно используемых bean-компонентов из других jar-файлов.

Когда компонентное сканирование имеет высокий уровень, то есть org.company посмотрит на ALL @Component и с нетерпением попытается их инициализировать.

Это создает проблему, особенно при тестировании срезов.

Как я могу структурировать свой код с правильным @ComponentScan до

a) определить ленивые bean-компоненты

b) определить bean-компоненты, использующие такие bean-компоненты

c) издеваться над ними, если я не выполняю интеграционное тестирование

d) инициализировать их по-разному в зависимости от профиля по умолчанию и профиля облака

Видите, это практически чёрная магия https://spring.io/blog/2015/04/27/binding-to-data-services-with-spring-boot-in-cloud-foundry

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...