@AutoConfiguration装配的bean和@Component的bean加载顺序如何控制

在 Spring 框架中,@AutoConfiguration 注解用于自动配置 Bean,而 @Component 注解用于将类标记为一个可被 Spring 容器扫描和管理的组件。
这两种注解的 Bean 加载顺序可以通过使用 @DependsOn 和 @Order 注解进行控制。
@DependsOn 注解用于指定 Bean 之间的依赖关系,它可以确保在当前 Bean 被初始化之前,指定的 Bean 已经被初始化。这样可以确保在 @AutoConfiguration 中装配的 Bean 在 @Component 中定义的 Bean 之前被初始化。

示例代码:

@Configuration
@AutoConfigureAfter({
   MyDatabaseAutoConfiguration.class})
public class MyMessageQueueA
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
`@Configuration` 和 `@AutoConfiguration` 都是 Spring 框架中的注解,它们都用于标记类作为配置类,但用途和行为有所不同: 1. **@Configuration**: - `@Configuration` 注解通常用于标记那些提供组件或服务配置的类。这些类会被 Spring 容器自动扫描,其公共属性(如构造函数、setter 方法)将被自动装配Bean。 - 类本身需要手动关联到其他组件,比如使用 `@Bean` 注解创建单例 Bean,或者通过 `@Autowired` 注解注入依赖。 - 当你直接声明一个 `@Configuration` 类,或者在一个已经扫描的包中找到该类时,Spring 将自动运行配置。 2. **@AutoConfiguration**: - `@AutoConfiguration` 是 Spring Boot 提供的一种更高级别的特性,它用于帮助解决“开箱即用”(out-of-the-box)配置的问题。 - 当一个类被 `@AutoConfiguration` 注解时,Spring Boot 尝试根据类名、包名以及类中是否存在某些特定注解(如 `@EnableAutoConfiguration` 或 `@Import`),自动识别并启用相关的配置。 - `@AutoConfiguration` 类通常会包含一些基于条件判断的装配规则,Spring Boot 根据环境变量、已扫描的组件或其他配置信息来决定是否启用该配置。 - 它通常用于配置文件和外部配置难以覆盖的场景,如基于类路径资源查找、类名前缀匹配等。 相关问题: 1. `@Configuration` 和 `@AutoConfiguration` 哪个是默认启用的? 2. 在哪些情况下更适合使用 `@AutoConfiguration`? 3. 如何避免 `@Configuration` 类被 `@AutoConfiguration` 替代?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值