@configuration 中@value不生效_SpringBoot的@Configuration扫盲

@Configuration注解标识的类中声明了1个或者多个@Bean方法,Spring容器可以使用这些方法来注入Bean,比如:

@Configuration
public class AppConfig {
  //这个方法就向Spring容器注入了一个类型是MyBean名字是myBean的Bean
  @Bean
  public MyBean myBean() {
     // instantiate, configure and return bean ...
  }
}

@Configuration类一般是由AnnotationConfigApplicationContext或者它的web变种AnnotationConfigWebApplicationContext来处理的,比如:

AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
//这是configuration类
ctx.register(AppConfig.class);
ctx.refresh();
MyBean myBean = ctx.getBean(MyBean.class);
// use myBean ...

也可以用以XML方式引入,就跟引入普通的Bean是一样的:

<beans>
  <context:annotation-config/>
  <!--也可以这样加载configuration类-->
  <bean class="com.acme.AppConfig"/>
</beans>

上例中,为了启用ConfigurationClassPostProcessor和其他的注解相关的Post Processor来处理@Configuration,需要添加<context:annotation-config/>。

组件扫描的方式使用

@Configuration上面添加了@Component元注解,因此, @Configuration是支持组件扫描的(一般要添加<context:component-scan/> ) ,它跟其他普通的Component一样也支持@Autowired/@Inject,如果@Configuration的类有一个构造函数,也支持构造函数自动注入,比如:

@Configuration
public class AppConfig {
  private final SomeBean someBean;
  //构造函数注入
  public AppConfig(SomeBean someBean) {
    this.someBean = someBean;
  }
  //注入另一个bean
  @Autowired
  private AnotherBean1 anotherBean1;
  //注入另一个bean
  @Resource
  private AnotherBean2 anotherBean2;
  // @Bean definition using "SomeBean"
}

@Configuration 类不仅可以被扫

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值