1 ) Slf4j
- Slf4j는 인터페이스이고 그 구현체로 Logback같은 라이브러리를 선택한다.
- 실제 개발에서는 Spring boot가 기본으로 제공하는 Logback을 대부분 사용한다.
- @Controller
- View가 있는 경우 사용한다.
- 즉, Template Engine인 Thymeleaf, JSP 등을 사용하는 경우
- @RestController
- 응답할 Data가 있는 경우 사용
- 현재는 대부분 @RestController를 사용하여 API가 만들어진다 (Restful API)
- return 값으로 view를 찾는 것이 아니라 HTTP Message Body에 Data를 입력한다.
2 ) Annotation
- @Component
- Spring Bean에 등록하여 역할을 수행한다.
- Spring Bean은 애플리케이션의 구성 요소를 정의하는 객체이다.
- @Indexed
- 클래스가 컴포넌트 스캔의 대상으로 Spring Bean에 더 빠르게 등록되도록 도와준다.
- Spring Bean에 등록하여 역할을 수행한다.
- @Target
- @Target이 선언된 하위 어노테이션이 어떤 범위에 적용되는지 설정한다.
- ElementType Enum
- @Retention
- @Retention 하위의 어노테이션이 얼마나 오래 유지되는지 결정한다.
- RetentionPolicy Enum 속성
- SOURCE
- 소스 코드(.java)에서만 유지된다.
- 컴파일러에 의해 클래스 파일로 저장되지 않는다.
- CLASS
- 컴파일된 클래스 파일에 저장되지만 JVM이 실행 시 읽지 않는다.(주석과 같음)
- Default 값이다.
- RUNTIME
- 클래스 파일에 저장되고, JVM에 의해 런타임 시점에 읽을 수 있다.
- 즉 실제 런타임 시점의 코드에 반영되어 영향을 준다.
- SOURCE
- @Documented - Javadoc 등의 문서화 도구에 의해 문서화되어야 함을 나타낸다.
3 ) Request Mapping
- 특정 URL로 Request를 보내면 들어온 요청을 Controller 내부의 특정 Method와 Mapping 하기 위해 사용.
- Client로부처 요청이 왔을 때 어떤 Controller가 호출될지 Mapping 하는것은 단순히 URL로 Mapping 하는 것이 아니라 여러가지 요소(URL, Method 등)를 조합하여 Mapping 한다.
- RequestMapping
- Spring Boot 3.0 버전 이하
- URL paht /example, /example/ 둘 다 허용
- Spring Boot 3.0 버전 이상(현재 버전)
- URL paht /example 만 허용.
- 속성값들을 설정할 때 배열 형태로 다중 설정이 가능하다.
- @RequestMapping({"/example", "/example2", "/example3"})
- HTTP Method POST, GET, PUT, PATCH, DELETE, HEAD 모두 허용한다.
- method 속성으로 HTTP 메서드를 지정하면 지정된것만 허용한다.
- Spring Boot 3.0 버전 이하
- GetMapping
- Spring이 제공하는 Annotation들의 내부에 다 선언되어있다.
- 대부분 필요한 기능들이 이미 만들어져 있어서 사용만 하면 된다.
- RequsetMapping 보다는 직관적이고 축약된 @GetMapping, @PostMapping 형식을 일반적으로 사용한다.
- @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping
- 모두 위의 @GetMapping 과 같은 구조이다.
- Spring이 제공하는 Annotation들의 내부에 다 선언되어있다.
- @PathVariable
- 경로 변수를 중괄호에 둘러싸인 값으로 사용할 수 있다.
- 기본적으로 @PathVariable로 설정된 경로 변수는 반드시 값을 가져야 하며 값이 없으면 응답 상태 404 Not Found Error가 발생한다.
- 최근 Restful API를 설계하는 것이 API 기준이되며 해당 어노테이션의 사용 빈도가 높아졌다.
- Restful API
- Create - POST
- Read - GET
- Update - PUT, PATCH
- Delete - DELETE
- @PathVariable 규칙
- 파라미터 변수명과 PathVariable 변수명이 같으면 속상 값 생략 가능
- @PathVariable 다중 사용 가능
- 속성 작성 규칙
- params = "gender"
- params의 key 값은 커스텀이 가능하다.
- value는 없어도 된다.
- params = "!gender"
- gender가 없어야한다.
- params = "gender = man"
- gender = man 이어야 한다.
- params = "gender != man"
- params의 value값이 man가 아니어야한다.
- params = {"gender = man", "gender = woman"}
- 배열로 속상 값을 여러 개 설정이 가능하다.
- params = "gender"
'TIL > Spring' 카테고리의 다른 글
TIL 2024-11-07 (Spring 입문 - 응답 데이터) (1) | 2024.11.07 |
---|---|
TIL 2024-11-06 (Spring 입문 - 요청 데이터) (0) | 2024.11.06 |
TIL 2024-11-04 (Spring 입문 - MVC) (1) | 2024.11.04 |
TIL 2024-11-01 (Spring 입문 - Web Application) (0) | 2024.11.01 |
TIL 2024-10-31 (Spring 입문 - HTTP) (0) | 2024.10.31 |