@Required & @Autowired的异同点:
相同点:
- 都可以用于修饰setter方法
- spring框架都自动检查是否配置了setter方法对应的属性,没有会抛出异常
不同点:
- @Aotowired可以修饰属性,在属性中使用 @Autowired 注释来除去 setter 方法,对应的属性在POJO中可以不写setter方法,当spring遇到一个@Aotowired修饰的属性时,会用autowired=”byType”的方式自动装载。
- @Autowired 的(required=false)选项,默认情况下两者是相同的,但可以使用@Autowired(required=false)使得修饰的setter方法对应的参数不配置也可以运行。
@Autowired(required=false)
public void setAge(Integer age) {
this.age = age;
}
未配置age属性也可运行。 - @Autowired可以修饰构造方法
@Autowired
public TextEditor(SpellChecker spellChecker){
System.out.println("Inside TextEditor constructor." );
this.spellChecker = spellChecker;
}
即时bean中没有使用construct-arg配置spellChecker,也会自动装载。