반응형
SpringBoot
RequestMapping
GetMapping
지금까지 method 에 @GetMapping 만 사용했었는데요,
컨트롤러에 따라 Mapping 을 나누어보겠습니다.
시스템이 커지면 관리하기가 수월합니다.
기존 소스
@Slf4j
@RestController
public class InfoController {
private InfoService infoService;
@Autowired
public InfoController(InfoService infoService) {
this.infoService = infoService;
}
@GetMapping("info/project")
public Object projectInfo() {
log.debug("start");
Project project = infoService.getProjectInfo();
return project;
}
@GetMapping("info/custom")
public String customJson() {
JsonObject jo = new JsonObject();
jo.addProperty("projectName", "preword");
jo.addProperty("author", "hello-bryan");
jo.addProperty("createdDate", new Date().toString());
JsonArray ja = new JsonArray();
for(int i=0; i<5; i++) {
JsonObject jObj = new JsonObject();
jObj.addProperty("prop"+i, i);
ja.add(jObj);
}
jo.add("follower", ja);
return jo.toString();
}
}
InfoController 에서 모든 메소드에 @GetMapping 으로
@GetMapping("info/project")
@GetMapping("info/custom")
과 같이 info 라는 root route 를 추가할 수 있는데, 이렇게 하면 반복되는 코드와 오타의 위험성?이 있기 때문에
class 에 @RequestMapping 이라는 annotation 을 달아줍니다.
변경된 소스
@Slf4j
@RestController
@RequestMapping("info") // <<---- 이거 추가
public class InfoController {
private InfoService infoService;
@Autowired
public InfoController(InfoService infoService) {
this.infoService = infoService;
}
@GetMapping("project")
public Object projectInfo() {
log.debug("/info start");
Project project = infoService.getProjectInfo();
return project;
}
@GetMapping("custom")
public String customJson() {
JsonObject jo = new JsonObject();
jo.addProperty("projectName", "preword");
jo.addProperty("author", "hello-bryan");
jo.addProperty("createdDate", new Date().toString());
JsonArray ja = new JsonArray();
for(int i=0; i<5; i++) {
JsonObject jObj = new JsonObject();
jObj.addProperty("prop"+i, i);
ja.add(jObj);
}
jo.add("follower", ja);
return jo.toString();
}
}
이렇게 class 에 annotation 으로 @RequestMapping 을 달아주면
이 class 안에있는 @GetMapping 의 상위 route 로 붙습니다.
와~ 깔끔하다~
접근 주소는 달라지지 않았습니다.
- localhost:8000/info/project
- localhost:8000/info/custom
Spring Boot Tutorial 시리즈
- 2021.07.03 - [Java] - [SpringBoot] RestApi 만들기 (1) 프로젝트 생성
- 2021.07.03 - [Java] - [SpringBoot] RestApi 만들기 (2) JSON 형식 리턴
- 2021.07.04 - [Java] - [SpringBoot] RestApi 만들기 (3) Log (slf4j+logback)
- 2021.07.04 - [Java] - [SpringBoot] RestApi 만들기 (4) Service 생성 (의존성 주입)
- 2021.07.04 - [Java] - [SpringBoot] RestApi 만들기 (5.1) MySQL + JDBC Template. 1
- 2021.07.05 - [Java] - [SpringBoot] RestApi 만들기 (5.2) DBCP - HikariCP
- 2021.07.08 - [java] - [SpringBoot] RestApi 만들기 (5.3) jdbcTemplate - Select
- 2021.07.10 - [Java] - [SpringBoot] RestApi 만들기 (5.4) GetMapping, PostMapping
- 2021.07.10 - [Java] - [SpringBoot] RestApi 만들기 (5.5) jdbcTemplate - Insert, Update, Delete
Spring Boot Tutorial 부록
- 2021.07.04 - [Java] - [SpringBoot] MyBatis 보다 Spring JDBC 를 사용해야 하는 이유
- 2021.06.19 - [Java] - [Spring-boot] 시작하기 전 알아야 할 것들
- 2021.06.19 - [Java] - [Spring-boot] 수동으로 설정 초기화
- 2021.07.04 - [Java] - Eclipse 에 groovy 설치 하기
- 2021.07.02 - [Java] - [eclipse] 이클립스 설치, STS(Spring Tools 4) 설치
- 2021.07.07 - [Java] - [SpringBoot] Controller 에 Route 적용 (RequestMapping)
728x90
반응형
'Java' 카테고리의 다른 글
[SpringBoot] RestApi 만들기 (5.4) GetMapping, PostMapping (0) | 2021.07.10 |
---|---|
[SpringBoot] RestApi 만들기 (5.3) jdbcTemplate - Select (0) | 2021.07.08 |
[SpringBoot] RestApi 만들기 (5.2) DBCP - HikariCP (0) | 2021.07.05 |
[SpringBoot] RestApi 만들기 (5.1) MySQL + JDBC Template (4) | 2021.07.04 |
Eclipse 에 groovy 설치 하기 (0) | 2021.07.04 |
댓글