카테고리 없음
[Project][Spring] Service / ServiceImpl
321
2021. 3. 30. 16:41
DAO에서 SqlSession을 이용해 데이터를 받아왔으면
Service역할을 해주는 Service/ServiceImpl을 만들어서 실행해 준다.
- BoardService interface
package kr.co.service;
import java.util.List;
import kr.co.vo.BoardVO;
import kr.co.vo.Criteria;
import kr.co.vo.SearchCriteria;
public interface BoardService {
public void write(BoardVO boardVO) throws Exception;
//public List<BoardVO> list(PageCriteria cri) throws Exception;
public List<BoardVO> list(SearchCriteria scri) throws Exception;
//public int listCount() throws Exception;
public int listCount(SearchCriteria scri) throws Exception;
public BoardVO read(int bno) throws Exception;
public void update(BoardVO boardVO) throws Exception;
public void delete(int bno) throws Exception;
}
- BoardServiceImpl 클래스
package kr.co.service;
import java.util.List;
import javax.inject.Inject;
import org.springframework.stereotype.Service;
import kr.co.dao.BoardDAO;
import kr.co.vo.BoardVO;
import kr.co.vo.Criteria;
import kr.co.vo.SearchCriteria;
@Service
public class BoardServiceImpl implements BoardService {
@Inject
private BoardDAO boardDao;
@Override
public void write(BoardVO boardVO) throws Exception {
boardDao.write(boardVO);
}
// @Override
// public List<BoardVO> list(PageCriteria cri) throws Exception {
//
// return boardDao.list(cri);
// }
//
// @Override
// public int listCount() throws Exception {
// return boardDao.listCount();
// }
@Override
public BoardVO read(int bno) throws Exception {
return boardDao.read(bno);
}
@Override
public void update(BoardVO boardVO) throws Exception {
boardDao.update(boardVO);
}
@Override
public void delete(int bno) throws Exception {
boardDao.delete(bno);
}
@Override
public List<BoardVO> list(SearchCriteria scri) throws Exception {
return boardDao.list(scri);
}
@Override
public int listCount(SearchCriteria scri) throws Exception {
// TODO Auto-generated method stub
return boardDao.listCount(scri);
}
}
- @Service 어노테이션을 붙임. 서비스 역할을 하도록 함
- DAO객체를 @Autowired 혹은 @Inject를 사용해 받아와서 실행시켜 준다.(@Autowired와 @Inject의 차이도 알아볼 것)
- 최근에는 @Autowired 대신 @RequireArgsConstructor 사용한 private final 객체를 많이 쓴다.