Setter Injection & Constructor Injection
예제로 사용될 Member 클래스 입니다.
[#M_ more.. | less.. |import java.util.List;
public class Member {
public Member(){}
public Member(String id, String password){
this.id = id;
this.password = password;
}
private String id;
private String password;
private List<String> wishList;
private int age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public List<String> getWishList() {
return wishList;
}
public void setWishList(List<String> wishList) {
this.wishList = wishList;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
_M#]1. Setter Injection
이것을 사용하기 위해서는 setter가 있어야 합니다. 설정파일에는 다음과 같이 <property /> 태그를 이용해서 Injection을 합니다.
<property name="id" value="whiteship" />
<property name="password" value="pass" />
<property name="age" value="26" />
</bean>
다음과 같이 테스트 메소드를 작성한 뒤 테스트 해 봅니다.
Member keesun = (Member) bf.getBean("keesun");
assertEquals("whiteship", keesun.getId());
assertEquals("pass", keesun.getPassword());
assertEquals(26, keesun.getAge());
}
됩니다. 이때 적절한 primitive type으로 알아서 바꿔주는 것을 확인할 수 있습니다.
2. Constructor Injection
이것을 사용하기 위해서는 인자가 있는 생성자가 필요합니다. 설정파일에는 <constructor-arg /> 태그를 사용합니다.
<constructor-arg value="whiteship" />
<constructor-arg value="pass" />
<constructor-arg value="26" />
</bean>
테스트 코드는 위에서 getBean("keesun2")로만 바꿔주면 됩니다.