JNDI - Java Naming & DIrectory Service
@Resource 어노테이션을 통한, JNDI Tree의 자원객체를 획득하는 방법은, 오로지 Servlet Class 내에서만 유효함.
* lookup -> 참고한다 의미로 해석하면될듯?
Context ctx = null;
ctx = new InitialContext(); //JNDI root 참조 획득
try {
ctx = new InitialContext(); // JNDI root 참조 획득
Object obj = ctx.lookup("java:comp/env/jdbc/OracleCloud");
this.ds = (DataSource) obj;
} catch (Exception e) {
throw new ServletException(e);
} finally {
if(ctx != null) {
try {
ctx.close();
} catch (NamingException e) {
} //try- catch
}//if
}//try-catch-finally
Object obj = ctx.lookup("java:comp/env/jdbc/OracleCloud");
this.ds = (DataSource) obj;
Presentation Layer
Business Layer
Persistence(DB) Layer
Presentation Layer | Business Layer | Persistence(DB) Layer |
---|---|---|
Persentation Logic (화면의 로직) | Business Logic 구현 (ex: 계좌이체) | Persistence Logic (DB Logic) |
HTML5, JSP | Servlet 객체 | DAO 패턴 객체(Data Access Object) |
DTO는 비즈니스 로직처리에 필요한 모든 데이터를 가지고 있는 객체로, 웹 3계층(Web 3-Layer)의 앞에서 -> 뒤로 전달되는 이 객체를 DTO (Data Transfer Object) 객체라고 한다.(DTO 패턴 적용)
비지니스 로직처리가 끝나고. 이 로직의 결과로 발생한, 데이터를 화면에 보여주기 위해, 로직처리 결과 데이터를 가지고 있는 객체를, VO (Value Object)라고 한다. 이런식으로 객체를 만드는 패턴을 VO 패턴이라고 한다.
주의사항
- 다음은 자바빈즈(JavaBeans) 클래스 규약이다.
- 1) private 접근제한자로 필드를 선언한다. (필수)
- 2) getter 메소드와 setter 메소드를 갖는다. (필수)
- 3) 기본 생성자가 반드시 존재해야 된다. (필수)
- 4) implements Serializable (선택)
//기본 생성자
@NoArgsConstructor(access=lombok.AccessLevel.PUBLIC)
//Getter
@Getter
//Setter
@Setter
//객체의 값을 예쁘게 찍어주기 위한 ToString
@ToString
//2단계 중복알고리즘을 대체하는 EqualsAndHashCode
@EqualsAndHashCode
위 5가지 lombok 어노테이션을 DTO를 만들때 한번에 사용해주는 어노테이션이 @Data 어노테이션
VO를 만들때에는 @Value 어노테이션 사용
- HTML 사원정보저장 웹 페이지에서 데이터 폼을 입력받음
- Servlet에서 수신된 전송파라미터를 DTO 객체로 저장 (DTO 클래스에 Setter 메소드를 통해서...)
- DTO 정보객체를 받아 DAO 객체로 DB 처리 (DTO에 담긴 사원정보를 DAO 객체를 통해 DB에 INSERT)
- (사원정보 DB SELECT) DAO를 거쳐서 도출(SELECT)된 1개의 레코드 데이터 값은 VO 객체에 읽기전용(READ ONLY)으로 담긴다.
이 각 VO객체를 List에 저장해주고, 웹 HTML 상에 DB값을 출력(Getter)
웹HTML에서 입력받은 데이터 -> 즉, HTML에서 요청내용의 정보를담는 객체가 DTO
DAO는 DB처리 -> 즉, 연결 및 SQL수행(데이터 SELECT, 데이터 INSERT UPDATE DELETE)
VO는 DAO를 거쳐서 도출된 값(정보객체?)을 저장한다