Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 코드그라운드
- 새로운방
- 새로운 방
- 페이지전환
- 알고리즘
- 토마토(고)
- 김씨만행복한세상
- Floyd 알고리즘
- 1108
- 정올
- kafka connect #debizium #transform
- kafka #consumer #autoStartup
- 1037
- 큐
- 오류교정
- 2613
- 페이지 전환
- JAVA #필수값
- 암스트롱 수
- 1045
- Queue
- 스택
- maven #메이븐 #빌드 #build #lifecycle
- 태그를 입력해 주세요.
- sql #오라클 #oracle #sequence #foreach #insert #mybatis
- Floyd
- vue
- hexagonal architecture #layer architecture #아키텍쳐 #헥사고날
- 최단거리
- kafka #ackmode #manual #acknowledge
Archives
- Today
- Total
별집사의 IT세상
JAVA Anotation 정리 본문
반응형
프로젝트를 진행하면서 새로 알게된 anotation들을 학습하는 페이지입니다.
@RequiredArgsConstructor
- 필요한 생성자를 자동으로 생성. final 필드나 @NonNull로 마크된 필드에 대해 생성자를 만들어줍니. 이를 통해 간결한 코드를 유지하면서 필요한 의존성 주입을 설정할 수 있습니다.
private final SampleService sampleService;
@Autowired
public ExampleService(SampleService sampleService){
this.sampleService = sampleService;
{
위 코드에서 아래 생성자 주입을 위한 코드를 사용 안해도 되는 이점이 있다.
@valid
Java의 Bean Validation API를 사용하여 필드의 유효성을 검사할 수 있습니다. 이를 위해 일반적으로 @Valid와 @NotNull, @Size, @Pattern 등 다양한 검증 어노테이션을 사용합니다.
1. Request 클래스에 유효성 검사 추가
@Data
@Builder
public class CreateUserRequest {
@NotNull(message = "ID cannot be null")
private String id;
@NotNull(message = "Title cannot be null")
private String title;
@NotNull(message = "Description cannot be null")
private String description;
}
2. Controller에서 유효성 검사 처리
@RestController
@RequiredArgsConstructor
@Validated
public class CreateUserController {
private final CreateUserUseCase createUserUseCase;
@PostMapping("/api/v1/user/create")
@ResponseStatus(HttpStatus.OK)
public void createUser(@Valid @RequestBody CreateUserRequest request) {
createUserUseCase.execute(request);
}
}
유효성 검사를 자동으로 해주고, 검사를 통과하지 못하면 MethodArgumentNotValidException이 발생합니다. Spring MVC는 기본적으로 400 Bad Request 응답을 반환합니다.
반응형
'IT > JAVA' 카테고리의 다른 글
[JAVA] input 값 중 필수 값 체크 (0) | 2022.09.16 |
---|
Comments