@Configuration 和 @Bean

1. @Bean:

1.1 定义

从定义可以看出,@Bean只能用于注解方法和注解的定义。

  1. @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})

  2. @Retention(RetentionPolicy.RUNTIME)

1.2 spring文档中对 @Bean的说明

用@Bean注解的方法:会实例化、配置并初始化一个新的对象,这个对象会由spring IoC 容器管理。

实例:

@Configuration

public class AppConfig {
@Bean

public MyService myService() {return new MyServiceImpl();}

}

相当于在 XML 文件中配置

<beans>

<bean id="myService" class="com.acme.services.MyServiceImpl"/>

</beans>

​​​​​​​

1.3 生成对象的名字:默认情况下用@Bean注解的方法名作为对象的名字。但是可以用 name属性定义对象的名字,而且还可以使用name为对象起多个名字。

​​​​@Configuration

public class AppConfig {

@Bean(name = "myFoo")

public Foo foo() {

       return new Foo();

}}

@Configuration

public class AppConfig {

@Bean(name = { "dataSource", "subsystemA-dataSource", "subsystemB-dataSource" })

public DataSource dataSource() {

// instantiate, configure and return DataSource bean...

}}

1.4 @Bean 一般和 Configuration 一起使用。

2. @Configuration:

2.1 定义

从定义看,用于注解类、接口、枚举、注解的定义。

  1. @Target(ElementType.TYPE)

  2. @Retention(RetentionPolicy.RUNTIME)

 2.2 spring 文档说明

@Configuration用于类,表明这个类是beans定义的源。

在spring.factories中定义配置类与在类上加注解@Configuration效果等同

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.bolingcavalry.webdemo.config.MyConfig, \
com.bolingcavalry.webdemo.config.GoodConfig, \
com.bolingcavalry.webdemo.config.OtherConfig
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值