[Spring#26] 개인과제 설계 및 API 구현

김한준 Hanjun Kim·2023년 11월 15일
0

내일배움캠프

목록 보기
26/70

개인과제 만드는중!

  • JwtAuthenticationFilter 에서 로그인 처리 하는구나

  • @Configuration : IoC Container에게 해당 클래스가 Bean 구성 class 라는걸 알려주는 것

  • @Bean vs @Component
    @Bean : 개발자가 직접 제어가 불가능한 외부 라이브러리를 Bean으로 수동 등록.
    @Component : 개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 어노테이션.

  • @NoArgsConstructor : 파라미터가 없는 기본 생성자 생성

  • @RequiredArgsConstructor : final 이나 @NonNull인 필드 값만 파라미터로 받는 생성자 생성

  • @Entity, @Table : 객체 - 테이블 맵핑

  • @Column : 필드 - 컬럼의 팹핑

  • @Id : 기본키의 맵핑

  • @ManyToOne, @JoinColumn : 조인 맵핑

  • 제약조건
    @NotNull 어노테이션은 필드의 값이 null이 아님을 확인하도록 하며 @Min은 해당 값의 최솟값을 지정할 수 있도록 한다.

@Getter
@RequiredArgsConstructor
public class AddUserRequest {

	@Email
	private final String email;

	@NotBlank
	private final String pw;

	@NotNull
	private final UserRole userRole;

	@Min(12)
	private final int age;

}

그리고 다음과 같이 컨트롤러의 메소드에 @Valid를 붙여주면 유효성 검증이 진행된다.

@PostMapping("/user/add") 
public ResponseEntity<Void> addUser(@RequestBody @Valid AddUserRequest addUserRequest) {
      ...
}
  • @Pattern: 해당 값이 주어진 패턴과 일치하는지 검증함
  • username은 최소 4자 이상, 10자 이하이며 알파벳 소문자(a~z), 숫자(0~9)로 구성되어야 한다.
  • password는 최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성되어야 한다.

-> [a-z0-9]
-> [a-zA-Z0-9]

API

ERD

profile
개발이 하고싶은 개발지망생

0개의 댓글