2

如果我有以下课程:

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;
    }
}

依赖项是属性已设置,但不需要绑定到填充该属性或字段的特定设置器,除非我遗漏了什么。

4

1 回答 1

1

传统上,bean 具有定义为 getter 和/或 setter 的属性。可以省略私有字段(有时称为“虚拟”字段)。在新的 Java EE 标准中,bean 更加松散,并且可能还具有定义为公共字段的属性。

尽管如此,Spring 早于最新标准,并且在方法 io 字段上添加注释具有可以通过 AOP(简单字节码操作)拦截访问的优势。

于 2012-06-08T23:59:38.333 回答