2018. 7. 22. 00:04 프로그래밍/Spring
서비스 인터페이스
// 서비스 컴포넌트 - 게시물 관련 업무를 처리할 객체
package bitcamp.java106.pms.service;
import java.util.List;
import pms.domain.Tour;
public interface TourService {
// 서비스 컴포넌트에서 메서드명을 지을 때는
// 업무 용어를 사용하라!
List<Tour> list(int pageNo, int pageSize);
Tour get(int no);
int add(Tour tour);
int update(Tour tour);
int delete(int no);
}
컨트롤러에서 사용할 메소드들에 대한 정보를 인터페이스 규칙으로 정의해 놓고
이 서비스를 구현하는 구현체들은 이 서비스에서 지정해둔 모든 메소드를 구현해야한다.
impl에서는 서비스 인터페이스에 지정했던 모든 제약사항들을 구현해야한다.
// 업무로직 구현체 - 고객사 마다 다른 구현을 할 수 있다.
package pms.service.impl;
import java.util.HashMap;
import java.util.List;
import org.springframework.stereotype.Service;
import pms.dao.TourDao;
import pms.domain.Tour;
import pms.service.TourService;
@Service
public class TourServiceImpl implements TourService {
TourDao tourDao;
public TourServiceImpl(TourDao tourDao) {
this.tourDao = tourDao;
}
// 서비스에서 사용할 DAO 객체를 먼저 준비한다.
@Override
public List<Tour> list(int pageNo, int pageSize) {
HashMap<String,Object> params = new HashMap<>();
params.put("startRowNo", (pageNo - 1) * pageSize);
params.put("pageSize", pageSize);
return tourDao.selectList(params);
}
//페이징 처리 메소드
@Override
public Tour get(int no) {
return tourDao.selectOne(no);
}
@Override
public int add(Tour tour) {
return tourDao.insert(tour);
}
@Override
public int update(Tour tour) {
return tourDao.update(tour);
}
@Override
public int delete(int no) {
return tourDao.delete(no);
}
}
'프로그래밍 > Spring' 카테고리의 다른 글
컨트롤러 (0) | 2018.07.22 |
---|---|
domain&dto&vo (0) | 2018.07.21 |