我使用Spring Boot和Spring Cloud已经有一段时间了,而Spring核心已经使用了更长时间,但是在创建框架时我无法找到明确规定使用哪种技术:
spring.factories
file @EnableXxx
例如:
spring-cloud-starter-eureka-client
并在某些配置类上添加@EnableEurekaClient
spring-boot-starter-jdbc
足以触发数据源自动配置。没有@EnableDataSourceAutoConfiguration
@EnableCaching
有时,@EnableXxx
带注释的类包含在启动程序带来的代码中,有时则不包括在内。
我知道@Enable...
是" pre Spring-Boot"方法(技术上看起来很好看@Import
),但@EnableEurekaClient
存在的事实证明它并没有被任何平均值所弃用。
那里的规则是什么?我无法在文档中找到它。
答案 0 :(得分:3)
没有硬性规定(至少从Spring Cloud的角度来看)。
一个候选经验法则是“如果某些东西在类路径上,但是 提供多种功能,您需要一种方法来打开子集“ 我更愿意将其视为“揭示有意识的选择” 而不是“依靠魔法”
我有点看作启动服务器或做工作(比如Discovery Client)