반응형
- @Component: Spring Container에 자동 등록.
- @Controller: Presentation 계층에서 Controller 명시.
- @Service: Business 계층에서 Service 명시.
- @Repository: Persistence(영속성) 계층에서 DTO 명시 ← DB와 가장 가까움.
JpaRepository<>나 CRUDReposiroty<>를 상속받아서 쓰면 따로 메서드 구현 없이 손쉽게 사용할 수도 있음. - @Bean: 내가 직접 만든 클래스가 아니라, 외부 라이브러리에서 가져온 클래스를 new 하여 자동 등록.
- @Configuration: 설정 파일을 명시하여 Bean으로 등록 → 싱글톤을 유지해주므로 작성하는 게 좋음.
- @Required: 반드시 프로펄티즈 파일을 사용하여 값을 주입받게 함.
- @Autowired, @Qualifier() : 같은 타입의 Bean 객체가 있으면 해당 아이디를 적어 원하는 Bean이 주입되게 함. @Resource: @Autowire는 타입으로 Bean객체 연결하는 반면 @Resource는 이름으로 연결
- @Lazy: @Component나 @Bean Annotation과 같이 쓰는데 Class가 로드될 때 스프링에서 바로 bean등록을 마치는 것이 아니라 실제로 사용될 때 로딩이 이뤄지게 하는 방법.
- @Value: 프로펄티즈에서 값을 가져와서 사용.
- @RequestBody: 요청이 온 데이터(JSON이나 XML형식)를 바로 Class나 model로 매핑하기 위한 Annotation.
POST나 PUT, PATCH로 요청을 받을때에, 요청에서 넘어온 body 값들을 자바 타입으로 파싱해줌. - @RequestHeader: Request의 header값을 가져옴.
- @RequestParam: @PathVariable과 비슷하다. request의 parameter에서 가져오는 것이다. method의 파라미터에 사용된다. ?moviename=thepurge 와 같은 쿼리 파라미터를 파싱해준다.
HTTP GET 요청에 대해 매칭되는 request parameter 값이 자동으로 들어간다. url 뒤에 붙는 parameter 값을 가져올 때 사용한다. http://localhost:8080/home?index=1&page=2 - @ResponseBody: HttpMessageConverter을 이용하여 JSON, xml로 요청에 응답할 수 있게 해준다.
@RestController가 붙어 있다면 쓸 필요 x, 그러나 @Controller라면 이걸 써서 HttpResponse로 응답 가능! - @PathVariable: 해당 URL에서 {특정값}을 변수로 받아올 수 있다.
@RequestParam은 ?특정값=x 형태, @PathVariable은 {특정값} 형태. - @Transactional: 메서드에 트랜잭션을 설정. 이걸 설정한 메서드 내부에서 일어나는 모든 로직은 모두 성공(commit)하거나 모두 실패(rollback).
- @Cacheable: 해당 메서드를 최초 호출 후 캐시에 적재하여, 다음 호출부터는 캐시에서 결과를 가져와서 효율성을 보장.
그러나 항상 입력과 출력이 같은 순수 함수에 적용해야 한다. - @ArgsConstructor: 생성자 생성.
- @Builder: .builder()를 통해 객체를 생성할 수 있도록 해줌.
- @Data
- @Entity: 실제 DB 테이블과 매칭될 객체임을 명시.
- @Id: 해당 테이블의 PK임을 명시. @GeneratedValue: PK의 생성 규칙을 명시. Auto_increment가 무난.
- @Column: 해당 테이블의 컬럼임을 명시. 굳이 안 써줘도 모두 컬럼으로 들어가지만, 해당 컬럼의 길이나 타입 등 기본 설정을 바꿔주기 위해 사용.
- @JoinColumn(name=””): 아마 1:N 관계에서 N에 붙여주는 FK 명시 ?
mappedBy: @OneToMany에 파라미터로 붙어서, ‘난 연관관계의 주인이 아님’을 명시.
어노테이션은 아직 훨씬 많지만, 제가 공부하면서 자주 접한 것들로만 간단하게 모아봤습니다.
궁금한 걸 찾아볼 때마다 계속 추가하겠읍니다.
'간단 정리 > Spring' 카테고리의 다른 글
[Spring] 내가 보려고 만든 IoC와 DI 간단 정리 (0) | 2024.02.21 |
---|---|
[Spring] 내가 보려고 만든 URI와 URL, URN 간단 정리 (0) | 2024.02.17 |
[Spring] 내가 보려고 만든 GET 요청과 POST 요청 정리 (0) | 2024.02.15 |