@Slf4j
Slf4j는 인터페이스이고 그 구현체로 Logback같은 라이브러리를 선택한다. 실제 개발에서는 Spring Boot가 기본으로 제공하는 Logback을 대부분 사용한다.
- Logging
로그를 작성하고 싶을 때 사용하는 Annotation

System.out.println();을 사용하여 Console에 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용하여 로그를 출력한다.- 사용시 주의점
package com.example.springbasicannotation.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@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";
}
}
com.example.springbasicannotation 하위 경로들의 로그 레벨을 설정한다.(기본은 info레벨)

- postman 호출

- 출력결과

level을 TRACE로 설정

- 출력결과

@Controller VS @RestController
Annotation 기반의 Spring에서 Controller(Handler)를 만들 때 사용하는 어노테이션
package com.example.springbasicannotation.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class ViewController {
@RequestMapping("/view")
public String example() {
// logic
return "sparta"; // ViewName이 return
}
}
Thymeleaf 예시
사용 하기 전 SpringBoot build.gradle 의존성 추가

resources/templates/sparta.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<h2>Thymeleaf Template Sample</h2>
</body>
</html>
return 값이 String이면 ThymeleafViewResolver 에 의해 View Name으로 인식된다.

view를 String 형으로 GET 요청
package com.example.springbasicannotation.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ResponseController {
@RequestMapping("/string")
public String example() {
// logic
return "sparta"; // ViewName이 return 되는게 아니라, String Data가 반환된다.
}
}
동작순서

postman 호출결과
