Service, Controller 작성
3287 단어 Springboot개발일지Springboot
[ Controller 생성 ]
요청에 따른 적절한 응답을 보냄
@RequiredArgsConstructor
- 필드 주입(
@Autowired
) 대신 사용하는 생성자 주입!
- 순환 참조 방지
- 테스트 코드 작성 용이
- 객체 변이 방지 (
final
키워드 사용 )
- More: https://zorba91.tistory.com/238
@RequestBody
- 클라이언트가 전송하는 Json 형태의 HTTP Body 내용을 Java Object로 변환
- 메세지를 변환하는 과정에서 객체의 기본 생성자를 통해 객체를 생성하고, 내부적으로 Reflection을 사용해 값을 할당 → 기본 생성자는 필요하고 Setter는 필요하지 않은 이유!
@PathVariable
- URI 경로의 일부를 파라미터로 사용할 때 사용
@RequestParam
: Query String 에서 값을 가져올 때 사용
@Valid
@RequestBody
객체 검증
- 의존성
implementation 'org.springframework.boot:spring-boot-starter-validation’
[ Service 생성 ]
SaveTodo
- 전달받은 requsetDto로 Todo Entity생성
- User와 Todo의 중개 Entity인 UserTodo Entity생성
- 생성된 Todo에 UserTodo 연결
- Todo Entity 저장 → UserTodo 또한 자동으로 저장 됨
[ Controller 테스트 ]
MockMVC
- 요청을 수행하고 응답을 만들어내는 Servlet API 모조(mock) 객체
- MockMvc 주입:
@SpringBootTest
+ @AutoConfigureMockMvc
mockMvc.perform(post("/api/todo")
.content(asJsonString(reqDto))
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
// then
.andExpect(status().isOk());
- “/api/todo” 경로로 post 요청을 보냄
- Content-Type: Json
- 예상되는 응답 상태(status) OK(200) 설정
Author And Source
이 문제에 관하여(Service, Controller 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@dot2__/Service-Controller-작성
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
요청에 따른 적절한 응답을 보냄
@Autowired
) 대신 사용하는 생성자 주입!- 순환 참조 방지
- 테스트 코드 작성 용이
- 객체 변이 방지 (
final
키워드 사용 ) - More: https://zorba91.tistory.com/238
@RequestParam
: Query String 에서 값을 가져올 때 사용@RequestBody
객체 검증implementation 'org.springframework.boot:spring-boot-starter-validation’
SaveTodo
- 전달받은 requsetDto로 Todo Entity생성
- User와 Todo의 중개 Entity인 UserTodo Entity생성
- 생성된 Todo에 UserTodo 연결
- Todo Entity 저장 → UserTodo 또한 자동으로 저장 됨
[ Controller 테스트 ]
MockMVC
- 요청을 수행하고 응답을 만들어내는 Servlet API 모조(mock) 객체
- MockMvc 주입:
@SpringBootTest
+ @AutoConfigureMockMvc
mockMvc.perform(post("/api/todo")
.content(asJsonString(reqDto))
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
// then
.andExpect(status().isOk());
- “/api/todo” 경로로 post 요청을 보냄
- Content-Type: Json
- 예상되는 응답 상태(status) OK(200) 설정
Author And Source
이 문제에 관하여(Service, Controller 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@dot2__/Service-Controller-작성
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@SpringBootTest
+ @AutoConfigureMockMvc
mockMvc.perform(post("/api/todo")
.content(asJsonString(reqDto))
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
// then
.andExpect(status().isOk());
Author And Source
이 문제에 관하여(Service, Controller 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dot2__/Service-Controller-작성저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)