[Spring Boot] Annotation 정리1
Annotation
-
@Configuration
- Spring IOC Container에게 해당 클래스를 Bean 구성 클래스임을 알려주는 어노테이션 , 설정파일을 만들기 위한 어노테이션
-
@Bean
- Spring IOC Container에 Bean을 등록하도록 하는 메타데이터를 기입하는 어노테이션
- 개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean으로 만들 때 사용됨
-
@Component
- Spring IOC Container에 Bean을 등록하도록 하는 메타데이터를 기입하는 어노테이션
- 개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 어노테이션
-
@PostConstruct
- 객체의 생성자가 호출되고 의존성 주입이 이루어진 후 초기화를 수행하도록 하는 어노테이션
- 서버를 내렸다가 올렸을 때 bean이 뜨고 postConstruct 어노테이션이 있는 것(메소드)부터 가장 먼저 실행됨=> 가장 먼저 DB에 생성되도록함
-
@Autowired
- 상황의 타입에 맞는 IOC Container 안에 존재하는 Bean을 자동으로 주입해주도록 하는 어노테이션
- 객체의 의존성을 가지는 부분에 사용하여 쉽게 의존성을 주입 받을 수 있음
-
@Transactional
- 일반적으로 트랜잭션이란 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행되어야 하는 연산들을 의미한다.
- 회원정보를 추가하거나 수정하는 것은 트랜젝션을 걸어줘야함 ,detail 보는 거나 article조회는 추가로 필요없음
- readOnly 옵션은 트랜잭션을 읽기 전용으로 설정하도록 하는 것임
-
@Controller
- Model 객체를 만들어 데이터를 담고 View를 반환하는데 다리 역할을 함
- MVC 패턴에서의 C
-
@RequestMapping
- 사용자의 요청 URL과 해당 컨트롤러를 매핑시키는 어노테이션
- @RequestMapping( value="/", method=RequestMethod.GET)이라고 하면 / URL로 HTTP GET 요청을 처리하는 형식이고 @GetMapping("/")과 같은 역할
-
@ResponseBody
- 메소드에서 리턴되는 값은 View를 통해 출력되지않고 HTTP Response Body에 직접 쓰여지도록 하는 어노테이션
- 보통은 controller에서 return 값으로 반환된 문자열이름의 view 페이지를 띄워주는데 View 페이지가 아닌 반환값 그대로 클라이언트에게 return하고 싶을 때 사용하는 어노테이션
-
@RequestParam
- HTML form 태그를 이용해 post 요청을 했을 때 input에서 name으로 지정한 이름으로 파라미터를 전달하도록 하는 어노테이션
-
@Service
- Service 레이어 클래스들에 사용되는 어노테이션
- @Sevice 어노테이션에 @Component 어노테이션의 기능이 포함되어 있고 @Service를 사용함으로써 해당 클래스가 Service의 역할을 하는 것을 명확하게 알 수 있습니다.
-
@Data
- @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정해주는 매우 유용한 어노테이션.
-
@AllArgsConstructor
- 모든 필드에 대한 생성자를 생성하는 어노테이션으로 의존성을 주입할 대상이 많아졌을 때 깔끔해짐
-
@NoArgsConstructor
- 파라미터가 없는 기본 생성자를 생성해줌
- AccessLevel.PROTECTED 옵션을 사용하면 무분별한 객체 생성에 을 막아줄 수 있음
-
@RequiredArgsConstructor
- final 필드에 대해 생성자를 만들어주는 어노테이션
- 새로운 필드를 추가할 때 다시 생성자를 만드는 번거로움을 없앨 수 있음