3.3.1. 기본 및 중첩 된 프로퍼티를 설정 및 가져 오기

프로퍼티를 설정하고 가져오는 것은 setPropertyValue(s)와 getPropertyValue(s) 메서드를 사용해서 이뤄진다. 둘 다 다수의 오버로드된 메서드들이 있다. 자세한 내용은 스프링 자바독에 모두 설명되어 있다. 객체의 프로퍼티를 나타내는 여러 가지 관례가 있다는 사실은 중요하다. 다음은 몇가지 예제이다.

프로퍼티를 설정 및 가져오는 것은 setPropertyValue, setPropertyValues, getPropertyValue, 및 getPropertyValues 사용하여 수행됩니다. 이것은 다수의 오버로드된 메서드들이 있다. Springs javadoc은 그것들을 더 자세하게 설명합니다. JavaBeans 스펙에는 오브젝트의 특성을 표시하기위한 규칙이 있습니다. 다음 표는 이러한 규칙의 몇 가지 예를 보여줍니다.

표 11. 등록 정보의 예

표현

설명

name

getName()또는 isName()setName(..)메서드와대응되는 name 프로퍼티를 나타낸다.

account.name

account 프로퍼티의 name의 중첩 된 프로퍼티를 나타냅니다 . 예를들어 getAccount().setName()또는getAccount().getName() 에 대응됩니다.

account[2]

인덱싱 된 account프로퍼의 세 번째 요소를 나타냅니다. 인덱스된 프로퍼티는array, list나 자연스럽게 정렬된 컬렉션이 될 수 있다.

account[COMPANYNAME]

Map프로퍼티의 accountCOMPANYNAME키로 찾은 값을 나타냅니다.

(BeanWrapper직접 작업을하지 않을 경우 다음부분은 극히 중요하지 않습니다. DataBinderBeanFactory 자나 이들의 어떤 구현체를 그냥 사용할 것이라면 PropertyEditors에 대한 섹션으로 건너뛰어도 좋다.)

다음 두 예제 클래스에서는 BeanWrapperget 및 set 속성을 사용합니다 .

public class Company {

    private String name;
    private Employee managingDirector;

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Employee getManagingDirector() {
        return this.managingDirector;
    }

    public void setManagingDirector(Employee managingDirector) {
        this.managingDirector = managingDirector;
    }
}
public class Employee {

    private String name;

    private float salary;

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public float getSalary() {
        return salary;
    }

    public void setSalary(float salary) {
        this.salary = salary;
    }
}

다음 코드는 인스턴스화된 CompaniesEmployees의 프로퍼티를 어덯게 획득하고 조각하는 가를 보여주는 예제이다.

BeanWrapper company = new BeanWrapperImpl(new Company());
// 회사이름을 설정한다.
company.setPropertyValue("name", "Some Company Inc.");
// ... 또는 다음과 같이도 할 수 있다.
PropertyValue value = new PropertyValue("name", "Some Company Inc.");
company.setPropertyValue(value);

// 감독관을 생성하고 회사에 연결한다.
BeanWrapper jim = new BeanWrapperImpl(new Employee());
jim.setPropertyValue("name", "Jim Stravinsky");
company.setPropertyValue("managingDirector", jim.getWrappedInstance());

// company를 통해 managingDirector의 봉급을 획득한다.
Float salary = (Float) company.getPropertyValue("managingDirector.salary");

Last updated