일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- JVM
- #스파르타내일배움캠프
- 스파르타내일배움캠프TIL
- 변수의 다양성
- Token
- 해우소
- #스파르타내일배움캠프TIL
- 감사기록
- GitHub
- #내일배움캠프
- Git
- 스레드
- Java
- 클래스
- 내일배움캠프
- 객체지향 언어
- 인스턴스
- Github_token
- 메서드
- Diary 해우소
- 스파르타내일배움캠프
- static
- 회고록
- 생성자
- 포맷은 최후의 보루
- 성장기록
- diary
- Java의 이점
- TiL_1st_0419
- KPT
- Today
- Total
몬그로이
MVC 의 annotation 들 본문
@Controller
@RestController
= @Controller + @ResponseBody
클래스의 모든 메서드가 @Responsbody를 필요로 할 때 사용하면 좋음
따라서 view를 반환해야 하는 메서드가 있을 경우는 Controller를 사용하는 것이 좋
@Controller 가 붙은 클래스에서 사용하는 URL Annotation
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@RequestMapping("/url")
Request가 들어왔을 때 받는 클래스를 표시한다
중복되는 URL를 단축
**URL ("/주소/redirect:/{정보}")
**정보: View name, redirect URL, tex, Java 객체
@ResponseBody
문자열을 그대로 웹에 띄울 때(JSON형태를 Response에 담을 때)
즉, return 하는 값 그 자체를 Response 객체에 담아서 보내겠다고 표시하는 것
@PathVariable
주소에 담겨온 데이터를 빼낼 때 사용
데이터를 사용할 메서드의 매개변수 타입 왼쪽에 적는다
@ PathVariable (required = false)
입력값이 없을 때 오류가 발생하지 않도록 해 줌(대신null로 들어옴)
직접 적지 않으면 기본값이 true 이므로 오류 발생
@RequestParam
Query String 방식으로 주소창/form태그 에 담겨 온 데이터를 빼낼 때 사용
데이터를 사용할 메서드의 매개변수 타입 왼쪽에 적는다
**주소창으로 오는 것은 GetMapping 방식, form태그로 오는 것은 PostMapping 방식
**form 태그에 담겨 온 데이터는 자동변환을 거쳐 Param 방식으로 들어온다. 이를 받는 것
**Param 방식 예 : name=abc&age=123
@RequestParam(required = false)
입력값이 없을 때 오류가 발생하지 않도록 해 줌(대신null로 들어옴)
직접 적지 않으면 기본값이 true 이므로 오류 발생
@RequestParam 를 생략해도 사용됨
@ModelAttribute
Body 에 들어온 Query String 방식의 데이터를 추출,변환하여 객체에 담아서 가져옴
가져온 데이터를 사용할 메서드의 매개변수의 왼쪽에 붙여줌
@PostMapping이나 @GetMapping 에서 모두 사용 가능하나 보통 @PostMapping에서 사용하며
@GetMapping 에서 @RequestParam 으로 받기에는 데이터의 종류/개수가 많은 경우 유용(드물지만 그렇게 사용함)
Setter 또는 오버로딩된 생성자가 반드시 있어야 받아옴
@ModelAttribute를 생략해도 사용됨
** @RequestParam @ModelAttribute 둘 다 생략이 가능한데
만약 둘 다 생략된 상태라면?
생략된 둘 중 뭘 사용할지 스프링이 판단하는 기준
받아올 데이터가(매개변수 타입이) Simple Value 타입이라면 @RequestParam 을, 아니라면(Object라면) @ModelAttribute 을 사용함
@RequestBody
HTTP body 부분에 Json 형식으로 데이터가 넘어오는 상황에
이 데이터를 처리하기 위해서는 가져온 데이터를 사용할 메서드의 매개변수의 타입의 왼쪽에 붙여줌
Jackson 라이브러리 적용후 사용
Jackson 라이브러리
Object 를 Json 타입으로 변환해줌
**JSON - Java Script 와 비슷한 데이터 형식
제공하는 클래스인
ObjectMapper
의 메서드
.writeValueAsString() 변환하고 싶은 객체를 넣으면 String 타입으로 반환해 줌 (직렬화)
이 때, 객체는 Getter가 있어야 함 >> @Getter 달아놓기
.readValue(json, Star.class)
Json 형태의 객체를 Star 형태로 바꿔줌
이 때, 변환될 객체는 getter or Setter나 기본생성자를 가지고 있어야함
또한 Json 문자열 내 이름과 Star 객체의 멤버변수이름이 동일해야함
'Organizing Docs > Spring Docs' 카테고리의 다른 글
QueryDSL (0) | 2024.06.30 |
---|---|
Entity-Table 에 사용하기 좋은 어노테이션 기능 (0) | 2024.06.30 |
Bean의 생명주기와 그것을 알게 되었을 때의 이점 (0) | 2024.05.23 |
HTTP 메서드 (0) | 2024.05.20 |
Spring - SOLID (0) | 2024.05.19 |