본문 바로가기
Programming/Spring

[Spring] DAO 객체의 구조

by 공부합시다홍아 2024. 5. 15.
 

[Spring] Controller 객체 구현

[Spring] JSP에 스프링 조합하기[JSP] Action Tag, 액션 태그[JSP] 예외 페이지[JSP] 쿠키와 세션 - 세션[JSP] 쿠키와 세션 - 쿠키[JSP] 내장 객체[JSP] GET과 POST[JSP] 태그[JSP] 서버와 클라이언트👨‍💻웹 프로그

hong-study.tistory.com


DAO를 공부하기 앞서 이를 이해하기 위해선 DAO, DTO, VO란 무엇인지 집고 넘어갈 필요가 있다.

DAO ( Data Access Object )

"실제 Database에 접근하는 객체"

Service와 DB를 연결하는 역할을 하며, 실제로 DB에 접근하여 data를 삽입, 삭제, 조회, 수정 등 CRUD 기능을 수행
※ JPA에서는 DB에 데이터를 CRUD 하는 JpaRepository<>를 상속받는 Repository 객체들이 DAO라고 볼 수 있다.

public interface itemRepository extends JpaRepository<Item, Long> {
}

DTO ( Data Transfer Object )

"계층 간 데이터 교환을 위한 객체"

로직을 가지지 않고, getter/setter 메소드만 가진 순수한 데이터 객체 클래스(Java Bean)로 DB에서 데이터를 얻어 Service나 Controller에 보낼 때 사용한다.

VO ( Value Object )

"변경이 불가능하며, 오로지 읽기만 가능한 객체 ( Read-Only )"

DTO는 Setter를 가지고 있어 값의 변경이 가능하지만, VO는 Getter만 가지고 있기 때문에 읽기만 가능하다.

DTO와 VO의 차이

DTO는 인스턴스의 개념이고, VO는 리터럴 값(변하지 않는 데이터)의 개념이다.
DTO는 단순히 값을 받아 전달하는 역할을 하지만 VO는 값들에 대해 읽기만 가능하기 때문에 객체로써 데이터 그 자체를 의미한다.

서비스 계층과 DAO 계층


서비스 계층 구현

방법 1 : NEW 연산자를 이용한 service 객체 생성 및 참조

BoardService service = new BoardService();

방법 2 : 스프링 설정 파일을 이용한 서비스 객체 생성 및 의존 객체 자동 주입

<beans:bean id="service" class="com.zerock.service.BoardServiceImpl"></beans:bean>

@Autowired
BoardService service;

방법 3 : 어노테이션을 이용한 서비스 객체 생성 및 의존 객체 자동 주입

- 서비스에서 작성
@Repository("boardService")
public class BoardSerivceImpl implements BoardService{

- Controller에서 작성
@Resource(name="boardService")
BaordService service;

DAO 계층 구현

방법 : 어노테이션을 이용해서 DAO 객체 생성 및 의존 객체 자동 주입

@Repository
public class BoardDAOImpl implements BoardDAO{

@Autowired
BaordDAO dao;
728x90

'Programming > Spring' 카테고리의 다른 글

[Spring] JDBC - OracleDB  (0) 2024.05.26
[Spring] JDBC ( MySQL )  (0) 2024.05.26
[Spring] Controller 객체 구현  (0) 2024.05.15
[Spring] JSP에 스프링 조합하기  (0) 2024.05.15
[Spring] 스프링 MVC 웹 서비스  (0) 2024.05.15