@Slf4j
Slf4j는 인터페이스이고 그 구현체로 Logback같은 라이브러리를 선택한다. 실제 개발에서는 Spring Boot가 기본으로 제공하는 Logback을 대부분 사용한다.
실제 운영 환경에서는 System.out.println(); 을 사용하여 Console에 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용하여 로그를 출력한다.
Log Level 설정을 통하여 Error 메세지만 출력하도록 하도록 하기도 하고 로그 메세지를 일자별로 모아서 저장하여 외부 저장소에 보관하기도 한다.
import lombok.extern.slf4j.Slf4j;
@Slf4j
@RestController
public class Slf4jController {
@RequestMapping("/logging")
public String logging() {
String sparta = "Sparta";
//TRACE -> DEBUG -> INFO -> WARN -> ERROR
log.trace("문자 trace={}", sparta);
log.debug("문자 debug={}", sparta);
// default
log.info("문자 info={}", sparta);// 문자 연산을 진행하지 않는다.
log.warn("문자 warn={}", sparta);
log.error("문자 error={}", sparta);
log.info("문지 info " +sparta); // 문자 연산을 먼저 해버린다.
return "success";
}
}
@Controller
View가 있는 경우에 사용한다.
즉, Template Engine인 Thymeleaf, JSP 등을 사용하는 경우
@Controller
public class ViewController {
@RequestMapping("/view")
public String example() {
return "sparta";
}
}
@RestController
응답할 Data가 있는 경우에 사용한다.
현재는 대부분 @RestController를 사용하여 API가 만들어진다. (Restful API)
return 값으로 View를 찾는것이 아니라 HTTP Message Body에 Data를 입력한다.
@RestController
public class ResponseController {
@RequestMapping("/string")
public String example() {
return "sparta";
}
}