Spring Boot는 로깅되는 게 이쁘게 잘 나옴
=> Spring은?
보통 Spring에서는 System.out.println으로 에러를 찾는데,
이렇게 하게 되면 쓸 데 없는 문자열을 사용하게 됨
Spring에 pom.xml을 보면 로깅하는 Slf4j라는 인터페이스가 있음
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
@Slf4j 애노테이션을 달고 log.info()를 쓰면 어디에서 찍혔는지도 같이 나옴
@Controller
@Slf4j
public class BoardController {
@RequestMapping("list.bo")
public String selectList(@RequestParam(value="cPage", defaultValue="1") int currentPage,
Model model) {
// System.out.println(currentPage);
log.info("얘다");
PageInfo pi = Pagination.getPageInfo(boardService.selectListCount(),currentPage, 5, 5);
log.info("페이지인포={}", pi);
=> 출력결과 :
INFO : com.kh.spring.board.controller.BoardController - 얘다
INFO : com.kh.spring.board.controller.BoardController - 페이지인포=PageInfo(listCount=20, currentPage=1, boardLimit=5, pageLimit=5, maxPage=4, startPage=1, endPage=4)
아이돌 Controller
@RestController // 비동기 요청만 받을거임 (JSON타입만 돌려줄거임)
@CrossOrigin("*") // 다른 포트에서 오는 요청을 받겠음
@RequestMapping("/idol")
@RequiredArgsConstructor
public class IdolController {
private final IdolService idolService;
@GetMapping
public ResponseEntity<List<Idol>> selectAll(){
List<Idol> idolList = idolService.selectAll();
HttpHeaders header = new HttpHeaders();
header.setContentType(new MediaType("application", "json", Charset.forName("UTF-8")));
return new ResponseEntity<List<Idol>>(idolList, header, HttpStatus.OK);
}
@PostMapping
public ResponseEntity<String> insert(@RequestBody Idol idol){
String result = idolService.insert(idol) != 0 ? "success" : "fail";
HttpHeaders header = new HttpHeaders();
header.setContentType(new MediaType("text", "html", Charset.forName("UTF-8")));
return new ResponseEntity<String>(result, header, HttpStatus.OK);
}
@DeleteMapping("/{id}")
public ResponseEntity<String> deleteById(@PathVariable(name="id") String id){
String result = idolService.deleteById(id) != 0? "success" : "fail";
HttpHeaders header = new HttpHeaders();
header.setContentType(new MediaType("text", "html", Charset.forName("UTF-8")));
return new ResponseEntity<String>(result, header, HttpStatus.OK);
}
아이도루 끝
게시판