글
예를들어 Bean 클래스를 만들었는데 toString 메소드를 만들어서 출력하게 하고싶다고 치자 어떻게 해야할까?
뭐 가장 쉬운 방법은 get 메소드를 하나하나 호출해서 붙혀서 알맞게 출력하는 방법이겠지만, 그게 답이라면 이글을 쓸필요도 없겠다.
정말 간단한 답이 있었다.
일단 아파치 자카르타 프로젝트의 Commons Lang 에서 제공하는 API 를 이용하여 메소드들을 쉽게 구현할수 있다.
이 라이브러리는 toString 말고도 equals,hashCode 도 쉽게 만드는 방법을 제공한다.
BaseObject 라는 클래스를 아래와같이 만들어서 모든 Bean 클래스에 적용해 주면된다.
- BaseObject.java
[code]package dic.model;
import java.io.Serializable;
import org.apache.commons.lang.builder.*;
@SuppressWarnings("serial")
public class BaseObject implements Serializable {
public String toString() {
return ToStringBuilder.reflectionToString(this,ToStringStyle.MULTI_LINE_STYLE);
}
public boolean equals(Object o) {
return EqualsBuilder.reflectionEquals(this, o);
}
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
}[/code]
- Member.java
[code]package dic.model;
import java.util.Date;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import dic.member.MemberManager;
public class Member extends BaseObject implements HttpSessionBindingListener{
private String id;
private String password;
private String name;
private String auth_id_list;
private String file_id_list;
private Date reg_date;
public String getId() {
return id;
}
public void setId(String s) {
id = s;
}
public String getPassword() {
return password;
}
public void setPassword(String s) {
password = s;
}
public String getName() {
return name;
}
public void setName(String s) {
name = s;
}
public String getAuthIdList() {
return auth_id_list;
}
public void setAuthIdList(String s) {
auth_id_list = s;
}
public String getFileIdList() {
return file_id_list;
}
public void setFileIdList(String s) {
file_id_list = s;
}
public Date getRegDate() {
return reg_date;
}
public void setRegDate(Date d) {
reg_date = d;
}
// 세션에 입력될때
public void valueBound(HttpSessionBindingEvent event) {
MemberManager.getInstance().doLogin(this);
}
// 세션에서 제거될때
public void valueUnbound(HttpSessionBindingEvent event) {
MemberManager.getInstance().doLogout(this);
}
public static void main(String args[]) {
Member m = new Member();
m.setId("cranix");
m.setPassword("1234");
m.setName("크래닉스");
System.out.println(m);
}
}[/code]
- 실행결과
dic.model.Member@8813f2[
id=cranix
password=1234
name=크래닉스
auth_id_list=<null>
file_id_list=<null>
reg_date=<null>
]
'웹 > Spring' 카테고리의 다른 글
Spring jsp 예외처리 전략 (20) | 2007.05.30 |
---|---|
Spring 의 exception 처리 전략 (26) | 2007.05.29 |
기본 Controller 지정하기. (23) | 2007.05.24 |
SPRING (25) | 2007.02.28 |
JSTL 사용하기 (28) | 2007.02.28 |
RECENT COMMENT