如果我有以下课程:
package com.example;
import org.springframework.beans.factory.annotation.Required;
public class Customer
{
private Person person;
public Person getPerson() {
return person;
}
@Required
public void setPerson(Person person) {
this.person = person;
}
}
为什么Spring中的@Required标签与setter绑定,而不是字段,就像这样?
package com.example;
import org.springframework.beans.factory.annotation.Required;
public class Customer
{
@Required
private Person person;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
}
依赖关系是属性已设置,但不需要绑定到填充该属性或字段的特定setter,除非我遗漏了某些内容。
答案 0 :(得分:1)
传统上,bean具有定义为getter和/或setter的属性。可以省略私有字段(有时称为“虚拟”字段)。在新的Java EE标准中,bean更松散,并且可能还有一个定义为公共字段的属性。
尽管如此,Spring还是提出了最新的标准,并对方法i.o进行了注释。字段的优点是可以通过AOP(简单字节代码操作)拦截访问。