Spring Boot自动配置类应该使用@configuration注释吗



根据我的测试,当Spring Boot自动配置类具有或不具有@Configuration注释时,我没有发现明显的差异——如果它们在spring.factories中正确配置,则无论@Configuration注释如何,都会加载它们。

然而,似乎每个自定义的自动配置示例和演示都使用@Configuration注释。所有这些例子都使用@Configuration是有原因的吗(还是只是惯例(?不使用@Configuration有什么影响吗?

在自动配置类上使用@Configuration的一些示例:

  • https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-自动配置条件注释类条件
  • https://www.baeldung.com/spring-boot-custom-auto-configuration#creating-a自定义自动配置
  • https://www.baeldung.com/spring-boot-custom-starter#1-自动配置类
  • https://www.javadevjournal.com/spring-boot/spring-boot-custom-starter/
  • https://billykorando.com/2019/12/30/building-a-custom-spring-boot-starter/
  • http://www.masterspringboot.com/getting-started-with-spring-boot/spring-boot-quickstarts/how-to-build-a-custom-spring-boot-starter-in-no-time/
  • https://github.com/snicoll/spring-boot-master-auto-configuration/blob/main/hornetq-spring-boot-autoconfigure/src/main/java/hornetq/autoconfigure/HornetQAutoConfiguration.java

是的,应该是。文档指出,自动配置类应该用@Configuration:进行注释

在引擎盖下,自动配置是用标准的@Configuration类实现的。额外的@Conditional注释用于约束何时应应用自动配置。通常,自动配置类使用@ConditionalOnClass@ConditionalOnMissingBean注释。

如果不使用@Configuration对它们进行注释,则依赖于Spring Framework的"lite"@Bean模式。这将更改自动配置类的行为。由于实施不符合文件要求,因此不能保证它在未来发挥作用。

相关内容

  • 没有找到相关文章

最新更新