使用@Component
标记时,与使用香草豆声明方法(用注释@Bean
)的POJO(普通的旧Java对象)相同。例如,下面的方法1和2将给出相同的结果。
方法1
@Component
public class SomeClass {
private int number;
public SomeClass(Integer theNumber){
this.number = theNumber.intValue();
}
public int getNumber(){
return this.number;
}
}
与“ theNumber”的bean:
@Bean
Integer theNumber(){
return new Integer(3456);
}
方法二
//Note: no @Component tag
public class SomeClass {
private int number;
public SomeClass(Integer theNumber){
this.number = theNumber.intValue();
}
public int getNumber(){
return this.number;
}
}
与两个豆:
@Bean
Integer theNumber(){
return new Integer(3456);
}
@Bean
SomeClass someClass(Integer theNumber){
return new SomeClass(theNumber);
}
方法2允许您将bean声明保持在一起,这更加灵活等等。您甚至可能想要添加另一个非香草的SomeClass bean,如下所示:
@Bean
SomeClass strawberryClass(){
return new SomeClass(new Integer(1));
}