티스토리 뷰
저번에는 일단 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으로 변환해서 보여주는 것도 확인할 수 있습니다.
'IT > Framework' 카테고리의 다른 글
Spring boot 2.2.8 - Encoding Filter 설정 (0) | 2020.07.26 |
---|---|
Spring boot 2.2.8 - Sql Logging 처리 (0) | 2020.06.28 |
Spring boot 2.2.8 Rest API 서버 구축하기(1) (0) | 2020.06.14 |
Mybatis - Cursor is closed 해결법 (0) | 2019.07.21 |
Spring - Static field에 Autowired 적용하기 (2) | 2018.12.08 |
- Total
- Today
- Yesterday