关于基于注解注册Bean的几种方式:https://www.jianshu.com/p/bdca18850673
@Component和@Bean都可以注册Bean。
区别在于:
- @Component放在类上,表示这个类是组件类,Spring要为这个类创建bean。@Component 和@Repository , @ Controller , @Service一样,局限于自己编写的类中.
- @Bean放在方法上,对应xml中,方法名就是这个bean的id,返回值就是这个bean的class。@Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑。使用@Bean可以把第三方库中的类实例交给spring管理。
举例说明:
一个简单的User类:
@Component
public class User {
@Value("1")
private String name;
public String getName() {
return name;
}
}
一个简单的User2类:
public class User2 {
@Value("2")
private String name;