프로그래밍

[Spring] day60 : Service와 ServiceImplement(+@Repository) 본문

자바/Spring

[Spring] day60 : Service와 ServiceImplement(+@Repository)

시케 2023. 8. 12. 23:24
728x90
반응형

2023.08.02.수

Service와 ServiceImplement

@Repository
@Repository는 @Component를 상속받는다
다만 Model 파트에서 사용하기에 관점분리에 유리하며
메모리 관리에 유리하며 속도가 향상된다
"DAO"라고 이름이 붙지 않을 수도 있는데 해당 어노테이션으로 구분 또한 가능하다
즉, 가독성이 향상된다

DAO는 자주 바뀌지 않기 때문에 어노테이션을 활용할 것이다

Service

Service 레이어는 관념적으로 존재한다

이렇게 관념적으로 존재하는 Service 레이어를 구현한 클래스는 DAO를 직접 사용하게 된다

ServiceImple 	== Service 레이어를 구현한 클래스
		== DAO를 직접 사용하는 주체
package com.spring.biz.board;

import java.util.List;

public interface BoardService {
	public BoardVO selectOne(BoardVO bVO);
	public List<BoardVO> selectAll(BoardVO bVO);
	
	public boolean insert(BoardVO bVO);
	public boolean update(BoardVO bVO);
	public boolean delete(BoardVO bVO);
}

ServiceImple

DAO를 사용할 것이기 때문에 메서드 시그니처를 통일하는 것이 좋다

메서드 시그니처를 강제하고 싶으므로 인터페이스를 통하여 구현할 것이다

package com.spring.biz.board;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service("boardService")
public class BoardServiceImpl implements BoardService {
	
	@Autowired
	private BoardDAO boardDAO;
	// 의존관계 -> DI
	
	@Override
	public BoardVO selectOne(BoardVO bVO) {
		return boardDAO.selectOne(bVO);
	}

	@Override
	public List<BoardVO> selectAll(BoardVO bVO) {
		return boardDAO.selectAll(bVO);
	}

	@Override
	public boolean insert(BoardVO bVO) {
		return boardDAO.insert(bVO);
	}

	@Override
	public boolean update(BoardVO bVO) {
		return boardDAO.update(bVO);
	}

	@Override
	public boolean delete(BoardVO bVO) {
		return boardDAO.delete(bVO);
	}
}

 

 

https://github.com/jihyean/Spring/tree/main/day60/src/main

 

 

728x90
반응형
Comments