------------------------------------------
1. GET - 쿼리 파라미터
2. POST - HTML Form
요청 - @RequestParam, @ModelAttribute
------------------------------------------
3. HTTP message body에 데이터 직접 넣어서 전달
요청 - @HttpEntity<T>, @RequestBody
------------------------------------------
------------------------------------------
1. 정적 리소스
2. 뷰 템플릿
3. HTTP 메시지
응답 - @ResponseBody , @HttpEntity<T>
------------------------------------------
* SLF4J
* Logback
**@Slf4j**
@RestController
public class LogTestController {
//private final Logger log = LoggerFactory.getLogger(getClass());
//@Slf4j를 넣으면 자동으로 이게 넣어진다.
@RequestMapping("/log-test")
public String logTest(){
String name = "Spring";
System.out.println("name = " + name);
//log.info("name = "+ name); //사용할 수 있지만 사용하지 말자! (+연산이 일어나서 쓸모없는 리소스가 사용되는 것임)
//log의 레벨을 정할 수 있다.
**log.trace("trace log = {}", name);
log.debug("debug log = {}", name);
log.info("info log = {}",name);
log.warn("warn log = {}",name);
log.error("error log = {}",name);**
return "ok";
}
}
#전체 로그 레벨 설정(기본 info)
logging.level.root=info
#hello.springmvc 패키지와 그 하위 로그 레벨 설정
logging.level.hello.springmvc=debug
로그 사용 장점
⇒ 실무에서는 반드시 로그를 사용하자!
URL주소 형태
모두 같은 요청으로 매핑한다. (/hello-basic)
@RequestMapping(value = "/hello-basic", method = RequestMethod.GET)
// url로 매핑 , 배열도 가능
public String helloBasic(){
log.info("helloBasic");
return "ok";
}
/**
* method 특정 HTTP 메서드 요청만 허용
* **GET, HEAD, POST, PUT, PATCH, DELETE**
*/
@RequestMapping(value = "/mapping-get-v1", **method = RequestMethod.GET**)
public String mappingGetV1() {
log.info("mappingGetV1");
return "ok";
}
/**
* 편리한 축약 애노테이션 (코드보기)
*** @GetMapping
* @PostMapping
* @PutMapping
* @DeleteMapping
* @PatchMapping**
*/
**@GetMapping**(value = "/mapping-get-v2")
public String mappingGetV2() {
log.info("mapping-get-v2");
return "ok";
}