티스토리 뷰
1. @RequestBody, @ModelAttribute, @RequestParam
- 클라이언트의 요청 값을 객체로 바인딩하는 데에 사용되는 방식이라는 점에서 공통점이 있지만 서로 차이점이 존재한다.
- 어노테이션 없이 파라미터로 단순 타입이 들어오는 경우 → @RequestParam이 생략된 것이라고 여김
- 그 외의 나머지 경우 → @ModelAttribute가 생략된 것이라고 여김
- @RequestParam = 한 개의 Http요청 파라미터를 받기위해 사용함. 기본값으로(required = true)이기에 false로 바꿔주지 않는 이상 반드시 파라미터가 존재해야 함
- @RequestBody = 클라이언트가 전송한 HttpBody내에 있는 JSON형식의 내용을 객체로 변환시켜주는 역할을 함.
- @ModelAttribute = 클라이언트가 전송한 여러 파라미터를 1:1로 객체에 바인딩한 후 다시 View로 데이터를 넘김. 이때 객체에 바인딩하는 과정에서 객체를 생성하기 위해 Setter가 정의되어있어야 함
과정
1. 파라미터로 들어온 타입과 매칭 되는 객체를 생성한 후, 넘어온 값들을 자동으로 바인딩함
2. 객체가 자동으로 Model객체에 추가되고, 뷰 단으로 전달됨.
2. JSON객체 → 원하는 객체 매핑
- objectMapper을 사용하여 원하는 객체로 매핑할 수 있음
// Json형식의 데이터가 String으로 messageBody에 저장되어있을 때
MyData myData = objectMapper.readValue(messageBody, MyData.class);
3. EntityManager
- Entitye들을 관리하는 객체이며 테이블과 매핑된 Entity들을 실제로 CRUD를 하는데에 있어서 사용함.
- 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간에 절대 공유하면 안 됨
4. @persistenceContext
- DB에서 사용하는 Persistance (영속성)이라고 하면 크게 와닿지 않는다. 메모리에서 사용하는 비휘발성이라고 생각해도 될듯함.
- @Entity를 붙여 테이블과 매핑한 객체 Entity들을 영구적으로 저장하고 관리하는 환경임.
'Study > Spring' 카테고리의 다른 글
스프링 정리(4) (0) | 2021.08.21 |
---|---|
스프링 정리(2) (0) | 2021.08.08 |
스프링 정리(1) (0) | 2021.08.03 |
IOC, DI, 컨테이너 (0) | 2021.01.14 |
회원 도메인 개발 (순수 자바코드로) (0) | 2021.01.14 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카카오 인턴십
- Kakaoblind
- 프로그래머스 월간코드챌린지
- 누적합
- 2021 카카오 블라인드
- 카카오 2020 인턴십
- 백준
- 2022 KAKAO BLIND RECRUITMENT
- 파싱
- 이분탐색
- 표 편집
- 유니온파인드
- 게임이론
- 2021 KAKAO BLIND
- 프로그래머스 위클리 9주차
- 2020 KAKAO BLIND RECRUITMENT
- DP
- 카카오 2차코딩테스트
- 동적계획법
- 2022 카카오 블라인드 코딩테스트
- 트리
- BFS
- 구현
- 투포인터
- 카카오 2021
- 2022 카카오블라인드
- 시뮬레이션
- 카카오 표 편집
- 위클리 챌린지
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함