Spring - POJO
POJO ( Plain Old Java Object ) 란?
- POJO 란 Java나 Java의 스펙에 정의된 것 이외에는 다른 기술이나 규약에 얽매이지 않아야 하고, 특정 환경에 종속적이지 않은 객체를 의미한다.
- 또한 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고, 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 의미한다.
public class User {
private String userName;
private String id;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
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;
}
}
- 이렇게 순수 자바에서 제공하는 기능만으로 만든 클래스를 POJO 라고 부른다.
public class MessageForm extends ActionForm {
String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
public class MessageAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
MessageForm messageForm = (MessageForm) form;
messageForm .setMessage("Hello World");
return mapping.findForward("success");
}
}
- 이렇게 다른 웹 프레임워크에 의존하는 코드는 애플리케이션 요구사항이 변경되면 수정해야하므로 POJO 라 할 수 없다.
POJO 프로그래밍이 필요한 이유
- 특정 환경에 종속적이지 않고 유연하게 개발을 하기 위하여
- 쉬운 디버깅을 위하여
- 단순한 테스트가 가능하기 때문에
- 객체지향적인 설계를 제한 없이 적용할 수 있기 때문이다. ( 가장 중요 )
Spring 과 POJO 의 관계
- Spring 은 POJO 프로그래밍이 지향하는 프레임워크이다.
- Spring 에서 지원해주는 다양한 기능들은 POJO 프로그래밍을 원활하게 할 수 있게 돕는다.
- 대표적으로 IoC/DI, AOP, PSA 등이 있다.