前言
当我们看到 @Configuration注解,就知道它所标注的类是一个 配置类,Spring boot里面有很多的配置类,当然我们也可以有自己的配置类,可以标注在Class, interface (including annotation type), or enum declaration
上。@Bean注解作用在方法上,声明当前方法的返回值是一个 Bean。
单单是这些知识可是完全不够的,我立马新建一个MyConfig类,写上了这两个注解,我带着求知的眼神,点进去看一下@Configuration和@Bean注解。
嗨哟!好家伙!!!不看不知道,一看吓一跳呀!! 足足几百行的英文。留下了没有技术的眼泪。没办法,为了让更多小伙伴 能够明白这两个注解,看吧(各位读者老爷能不能看我翻译总结的份上给个三连呀!)已经总结在下面
一、基本用法
1,基本介绍
Spring Boot 推荐使用 java 配置完全代替 XML 配置,java 配置是通过 @Configration 和 @Bean 注解实现的。二者作用如下:
- @Configration 注解:声明当前类是一个配置类,相当于 Spring 中的一个 XML 文件
- @Bean 注解:作用在方法上,声明当前方法的返回值是一个 Bean
2、基本用法
1.最最最基本用法
表示一个类声明了一个或多个@Bean方法,可能会被 Spring 容器处理以在运行时为这些 bean 生成 bean 定义和服务请求,例如:
@Configuration
public class AppConfig {
@Bean
//表示一个方法产生了一个由Spring容器管理的bean
public MyBean myBean() {
System.out.println("=======Bean1========");
// 实例化、配置和返回 bean ...
}
}
当我们启动项目时,名字叫myBean
的就会装配到Spring 容器管理的bean中。
二、@Bean 注解详解
1,使用说明
- @Bean 注解作用在方法上
- @Bean 指示一个方法返回一个 Spring 容器管理的 Bean,也就是说方法返回值就是给Springr容器装配的bean
- @Bean 一般和 @Component 或者 @Configuration 一起使用,也可以在 @Service 里使用,没有特定要求,主要看项目的需求。
- @Bean 注解默认作用域为单例 singleton 作用域,可通过 @Scope(“prototype”) 设置为原型作用域
2,Bean 名称
(1)默认情况下 Bean 名称就是方法名
,比如下面 Bean 名称便是 myBean:
@Bean
public MyBean myBean() {
return new MyBean();
}
(2)@Bean 注解支持设置别名。比如下面除了主名称 myBean 外,还有个别名 myBean1(两个都可以使用)
@Bean("myBean1")
public MyBean myBean