Spring Boot具有神奇的自动配置。
例如,如果我在@Configuration中定义一个DataSource @Bean,它将接受它;如果我未定义,那么它将尝试通过查看属性文件和类路径来创建一些东西
如果我在类路径中有H2,它将在连接中创建一个内存数据库 如果没有,根据配置,它可能会连接到mysql或mongo
如何在自己的bean /代码中执行此操作?
如果我定义bean /配置,则可能还需要定义组件扫描 如果我的服务依赖于其他罐子中的可重复使用豆,这将变得具有挑战性。
当组件扫描处于较高级别(即org.company)时,它将查看ALL @Component并热切尝试对其进行初始化。
尤其在切片测试中,这带来了挑战。
如何使用正确的@ComponentScan构建代码
a)定义懒豆
b)定义使用此类bean的豆
c)如果我不进行集成测试,则对它们进行模拟
d)根据默认配置文件和云配置文件对它们进行不同的初始化
看到这个-这实际上是黑魔法 https://spring.io/blog/2015/04/27/binding-to-data-services-with-spring-boot-in-cloud-foundry