티스토리 뷰

 저번에는 일단 DB까지 연결해 보았습니다. 그러면 이제 본격적으로 Controller, Service, Mapper까지 생성해서 통신했을 때 실제 데이터를 뿌려주는 것까지 해봅시다. 기본적으로 Spring boot의 base scan 범위를 별도로 지정하지 않았다면 *Application 파일이 있는 팩키지 아래 경로에 있는 파일들만 scan하게 됩니다. 팩키지 경로를 별도로 변경해 버리면 scan을 하지 않으니 *Application 파일이 있는 팩키지 아래로 경로를 만들도록 합시다. 물론 scan 범위를 별도로 지정해주면 경로를 바꿔도 가능합니다.

 

 

 이런식으로 일단 경로를 만들어주고 차례대로 Controller 및 Service, Mapper를 만들도록 합시다. Controller와 Service는 클래스 파일로 생성하고 Mapper는 Mybatis를 이용할 것이므로 Interface로 생성해야 합니다.

 

 각각의 생성 된 파일 위에 이 녀석들이 어떤 것을 담당할 것인지에 대한 명시를 해주어야 합니다. Annotation이라고 하는데 Mapper와 Service에는 @Mapper, @Service를 붙여주고 Controller만 따로 @RestController를 붙여 줍니다. Controller 어노테이션에는 그냥 @Controller와 @RestController가 있는데 @RestController로 지정하면 알아서 json으로 형태를 돌려줍니다. 그럼 이제 실제로 통신이 들어왔을 때 임직원의 정보를 돌려주는 Rest api를 만들어 보도록 합시다. Table은 기본 Oracle에서 제공하는 EMP 테이블을 이용할 것이고 JOB이 Salesman인 사람들의 정보를 전달 할 겁니다.

 

 먼저 컨트롤러입니다. 경로는 /getEmpInfo로 정했고 각각 request 및 전달되는 파라미터를 Map으로 받도록 했습니다. 물론 별도의 값을 줄 건 아니긴 한데 그냥 한번 넣어보았습니다. 

 

 Service입니다. 역시 별 건 없습니다. 그냥 쿼리 결과 값을 List로 받아서 컨트롤러에 돌려줄 겁니다.

 

 Mapper도 별 게 없습니다. 자 이러면 일단 Java 쪽은 모든 준비를 마쳤고 쿼리를 실행하기 위한 Mybatis 설정을 추가로 해봅시다. application.properties를 열고 mybatis.mapper-locations를 지정해 줍시다. 저는 그냥 간단하게 아래와 같이 추가했습니다. 

 

# mybatis.mapper-locations=classpath:static/mapper/*.xml

 

resources/static 아래에 mapper폴더를 생성하고 거기에 mybatis xml 파일을 만들었습니다.

 

 

 xml 파일에 mapper 경로를 실제 java 경로로 맞추고 Interface의 Method 명을 id에 똑같이 입력해주었습니다. 그리고 이제 Spring boot를 실행하고 http://localhost/getEmpInfo로 접속해 보시면 아래와 같은 화면을 볼 수 있습니다.

 

 이걸로 Rest api 서버를 완성했습니다. List 형태를 자동적으로 JSON으로 변환해서 보여주는 것도 확인할 수 있습니다. 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday