@Bean是一个 方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。
Spring Boot 推荐使用 java 配置完全代替 XML 配置,java 配置是过 @Configration 和 @Bean 注解实现的。
@Configration 注解:声明当前类是一个配置类,相当于 Spring 中的一个 XML 文件。
@Bean 注解:作用在方法上,声明当前方法的返回值是一个 Bean。
示例:
@Configuration
public class MyConfigration {
@Bean
public String hello() {
return "hello boys";
}
}
获取bean方式:
@Autowired
String hello;
bean和name属性:
@Bean(name = "string2")
public String hello() {
return "hello boys";
}
@Bean(name = "string3")
public String hello() {
return "hello girls";
}
获取方式:
@Resource(name = "string2")
private String hello;
@Resource(name = "string3")
private String hello2;
@Autowired和@Resource注解的区别:
先来看一下两者的共同点:
1.@Resource注解和@Autowired注解都可以用作bean的注入.
2.在接口只有一个实现类的时候,两个注解可以互相替换,效果相同.
两者的不同在于:
1.@Resource是java本身就有的,而@Autowired是spring框架的东西。
2.@Resource有两个重要的属性,name和type,如果name属性指定,则按name来查找并注入bean;若name未被指定,type被指定,则按照type来查找注入。@Autowired只会根据type来找bean,若接口有多个实现,则会报错,要结合其他注解来使用。
参考:SpringBoot - @Configuration、@Bean注解的使用详解(配置类的实现) - Sharpest - 博客园 (cnblogs.com)
如有侵权,请联系删除。
在下小白一枚,欢迎各位大佬补充、批评和指正。