Annotation이란?
- 사전적 의미로는 주석이라는 뜻이다.
- 자바에서 Annotation은 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술이다.
- 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다
Anotation | 제약조건 |
@ComponentScan |
|
@Component |
|
@Bean |
|
@Autowired |
|
@Controller |
|
@RestController |
|
@Controller 와 @RestController 의 차이 @Controller API와 view를 동시에 사용하는 경우에 사용한다. 대신 API 서비스로 사용하는 경우는 @ResponseBody를 사용하여 객체를 반환한다. view(화면) return이 주목적이다. @RestController view가 필요없는 API만 지원하는 서비스에서 사용한다. Spring 4.0.1부터 제공 @RequestMapping 메서드가 기본적으로 @ResponseBody 의미를 가정한다. data(json, xml 등) return이 주목적이다. 즉 @RestController = @Controller + @ResponseBody 이다. |
|
@Service |
|
@Repository |
|
@SpringBootApplication |
|
@RequestMapping |
|
@GetMapping |
|
@Valid |
|
@RequestAttribute |
|
@RequestBody |
|
@RequestHeader |
|
@RequestParam |
|
@ResponseBody |
|
@PathVariable |
|
Lombok Annotation
Anotation | 제약조건 |
@NoArgsConstructor |
|
@AllArgsConstructor |
|
@RequiredArgsConstructor |
|
@Getter |
|
@Setter |
|
@Builder |
|
JPA Annotation
- JPA를 사용하면 DB 데이터에 작업할 경우 실제 쿼리를 사용하지 않고 Entity 클래스의 수정을 통해 작업한다
Anotation | 제약조건 |
@Entity |
|
@Table |
|
@Id |
|
@GeneratedValue |
|
@Column | 테이블의 컬럼을 나타내며, 굳이 선언하지 않더라도 해당 Class의 필드는 모두 컬럼이 된다.
|
Validation Annotation ( @Valid)
Anotation | 제약조건 |
@NotNull | Null 불가 |
@Null | Null만 입력 가능 |
@NotEmpty | Null, 빈 문자열 불가 |
@NotBlank | Null, 빈 문자열, 스페이스만 있는 문자열 불가 |
@Size(min=,max=) | 문자열, 배열등의 크기가 만족하는가? |
@Pattern(regex=) | 정규식을 만족하는가? |
@Max(숫자) | 지정 값 이하인가? |
@Min(숫자) | 지정 값 이상인가 |
@Future | 현재 보다 미래인가? |
@Past | 현재 보다 과거인가? |
@Positive | 양수만 가능 |
@PositiveOrZero | 양수와 0만 가능 |
@Negative | 음수만 가능 |
@NegativeOrZero | 음수와 0만 가능 |
이메일 형식만 가능 | |
@Digits(integer=, fraction = ) | 대상 수가 지정된 정수와 소수 자리 수 보다 작은가? |
@DecimalMax(value=) | 지정된 값(실수) 이하인가? |
@DecimalMin(value=) | 지정된 값(실수) 이상인가? |
@AssertFalse | false 인가? |
@AssertTrue | true 인가? |
참고자료:
https://velog.io/@ruinak_4127/Annotation%EC%9D%B4%EB%9E%80
https://bamdule.tistory.com/35
'Coding > Spring' 카테고리의 다른 글
[12] 정규식(regex, rational expression) (0) | 2022.12.06 |
---|---|
[11] Database 와 SQL (0) | 2022.12.06 |
[09] 스프링 MVC 이해 (0) | 2022.12.04 |
[08] 웹 동작방식 (0) | 2022.12.04 |
[07] 항해99 주특기 입문 1주차 - 주특기 시험 (API 구현) (3) | 2022.12.01 |