서비스단 만들고 DB에서 데이터 뽑아오기

이번 포스팅에서는 전자정부 프레임워크에서

서비스단을 만들어 보겠습니다.

먼저 서비스 폴더와 파일을 생성해줍니다



example 안에 welcomeWeb이라는 폴더를

만든다음 그 안에 service, web폴더를 만들어 주었습니다

그리고 service 안에 impl폴더 생성해줍니다


먼저 web폴더안에는 컨트롤러를 만들어 줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
@Controller
public class WelcomeWebMainController {
    
    @Resource(name = "welcomeWebService")
       private WelcomeWebService welcomeWebService;    
    @RequestMapping(value = "welcomeWeb.do")
    public String initMain(ModelMap model) throws Exception {
        List<Map> welcomeWebList = welcomeWebService.selectWelcomeWebServiceList();            
        model.addAttribute("welcomeWebList", welcomeWebList);    
        return "welcomeWeb/welcomeWeb.tiles";
    }
}
cs



이 컨트롤러는 WelcomeWebService라는 서비스 객체를
가지고 있습니다. 이것은 페이지에서 실행할 기능을 모아둔 것입니다.

4line 에서 Resource 어노테이션을 사용해 
welcomeWebService를 자동으로 연결시켜줍니다.

@Resource 어노테이션은 @Autowired와 비슷한 어노테이션입니다
@Autowired 는 제 블로그 SPRING 에서 다루었던적이 있습니다.

@Resource, @Autowired 어노테이션은 특정 Bean의 기능 수행을
위해 다른 Bean을 참조해야 하는 경우 사용합니다.
7line 에서는 맵핑된 jsp 파일에 함수를 만들었습니다. 컨트롤러가
서비스에게 동작을 시키면 selectWelcomeServiceList()라는 함수가
호출됩니다. 다음 model을 이용해 화면에 뿌려주고
해당 화면으로 return 합니다.

다음 WelcomeWebService입니다

1
2
3
public interface WelcomeWebService {
    List<Map> selectWelcomeWebServiceList()throws Exception;    
}
cs

서비스는 인터페이스로 정의합니다.
서비스는 임플을 가르키기도 하지만 인터페이스 입니다.
인터페이스 안에는 내용을 코딩할수 없습니다.
메소드 선언만 가능하고 그거에 대한 구현은 임플에서합니다.

서비스는 컨트롤러에 의해 호출되어 실제 로직과 트랜잭션을
처리합니다. DB에서 CRUD를 맡는 DAO객체를 spring으로부터
주입받아서 DAO에게 처리를 위임하고 처리를 받은것을 다시
컨트롤러에 반환합니다.

WelcomeServiceImpl.java

1
2
3
4
5
6
7
8
9
10
11
@Service("welcomeWebService")
public class WelcomeWebServiceImpl extends EgovAbstractServiceImpl implements WelcomeWebService {
    
    @Resource(name="welcomeWebMapper")
    private WelcomeWebMapper welcomeWebMapper;
    
    @Override
    public List<Map> selectWelcomeWebServiceList() throws Exception {
        return welcomeWebMapper.selectWelcomeWebServiceList();
    }
}
cs

이제 임플에서 서비스를 오버라이딩하여
메소드를 구현합니다.
다음 맵퍼의 selectWelcomeWebServiceList를 리턴합니다.

다음 포스팅에서 맵퍼 생성후 마무리 하겠습니다


댓글

Designed by JB FACTORY