POJO?
특별한 환경에 종속되지 않고, class path를 필요로하지 않는 일반적인 Java Object.
Motivation
JAVA 기반 시스템의 업무 복잡도가 증가하면서 비즈니스 로직 자체가 복잡해짐
트랜잭션 처리, 상태 관리, 멀티스레딩, 보안 등등의 코드들을 포함하다보니 코드가 복잡해짐
EJB이 등장했으나, 여전히 개발 효율이 떨어짐
EJB로 인해 객체지향 설계의 장점이 많이 가려졌으며, 이를 해결하기 위한 개념으로 POJO가 다시 조명됨
POJO and Bean
public class SamplePojo {
String id;
private int level;
public SamplePojo(String id, int level) {
this.id = id;
this.level = level;
}
public int getLevel() {
return this.level;
}
}
- extend, implement를 갖지 않는 순수 객체
- 가독성과 재사용성 중시
import java.io.Serializable;
public class SampleBean implements Serializable {
private static final log serialVersionUID = 1;
private String id;
private int level;
public SampleBean() {
}
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public int getLevel() {
return this.level;
}
public void setLevel(int level) {
this.level = level;
}
}
- POJO에 기본 규칙을 추가함
- Fields는 private이어야 함
- Fields는 getter와 setter로 접근해야 함
- Constructor는 argument를 가져서는 안됨