文章字数:317,阅读全文大约需要1分钟
@Configuration和@Bean是Spring中常用的用于配置的Bean的两个注解(将@Bean注解的方法返回的类注入spring)
@Bean
定义
1
2
3//用于注解方法和注解的定义
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)适用范围
@Bean可作用于组件@Component,该注解及其扩展注解均可使用:@Component定义类为组件,并且注入Spring中@Repository定义DAO层@ServiceService服务层类@Controller控制层类@Configuration标记这是一个配置Bean的类,通常和@bean一起使用。可以使用类中的其它@Bean注入的bean,其它不行。作用
用@Bean注解的方法:会实例化、配置并初始化返回一个新的对象,这个对象会由spring IoC 容器管理。
1
2
3
4
5
6
7
public class AppConfig{
public MyService myService(){
return new MyServiceImpl();
}
}相当于 (beam默认使用注解方法名作为bean的id)
1
2
3<beans>
<bean id="myService" class="com.acme.services.MyServiceImpl">
</beans>给bean起名
1
2
3
4//指定名称
@Bean(name = "myFoo")
//指定多个名字
@Bean(name = { "dataSource", "subsystemA-dataSource", "subsystemB-dataSource" })
@Configuration
@Configuration和@Component区别在于@Configuration可以在注入类内依赖的Bean,即上一个方法注入的bean可以被下一个方法获取使用。
1 |
|