// 서비스 컴포넌트 - 게시물 관련 업무를 처리할 객체

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
Posted by kingroad

블로그 이미지
개발자를 꿈꾸는 코린이 입니다
kingroad

태그목록

공지사항

Yesterday
Today
Total

달력

 « |  » 2025.5
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

글 보관함