Spring 프레임워크에서 쓰이는 어노테이션을 정리해보았다.
@RequiredArgsConstructor
final이 붙은 필드로 생성자를 하나 만들어준다.
그리고 생성자가 하나만 있으면 @Autowired가 자동으로 붙는다.
그래서 생성자와 @Autowired를 생략하여 코드를 깔끔하게 정리할 수 있다.
@Transactional
데이터베이스 상태를 바꾸는 쿼리들이 많이 있을 때, 중간에 오류가 나서 멈추게 되면 그동안 바꿨던 쿼리들을 되돌려야 할 것이다. 트랜잭션을 사용한 메소드는 쿼리들을 프록시 저장했다가 최종적으로 완료되면 커밋된다.
트랜잭션에 대해서 간단히 설명했지만 다루는 내용이 많다. 나중에 별도로 게시물을 만들어보겠다.
스프링 IoC(Inversion of Control) 관련 어노테이션
스프링 IoC 관련 어노테이션을 보기 전에 알아야하는 것이 빈 생명주기이다.
스프링 빈 생명주기(Bean LifeCycle)
스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존 관계 주입 -> 초기화 콜백 -> 사용 -> 소멸 콜백 -> 스프링 종료
객체를 사용하기 위해서는 객체가 생성된 후 의존성 주입(DI)까지 끝나야 한다.
그리고 의존 관계가 주입된 후에 값을 설정해주는 단계는 초기화 단계이다.
@Bean
메소드 위에 어노테이션 작성.
Spring 컨테이너에 Bean 등록
@PostConstruct, @PreDestory
@PostConstruct : 객체에 의존성이 주입된 직후 수행하는 초기화 콜백 메소드. 의존 관계 주입이 완료된 상태에서 필요한 기능을 수행할 수 있다.
@PreDestroy : 소멸 시점에 일어나는 소멸 콜백 메소드.
위 두 어노테이션은 다른 리소스에서 호출되지 않아도 어플리케이션 서버 기동 시 자동으로 수행된다.
'Java > Spring' 카테고리의 다른 글
그거 아셨나요? - Reflection과 기본 생성자가 필요한 이유 (0) | 2024.08.10 |
---|---|
트랜잭션(@Transaction) (2) - 트랜잭션 옵션 (0) | 2024.08.07 |
트랜잭션(@Transaction) (1) - 트랜잭션의 개요 및 프록시 내부 호출 문제 (0) | 2024.08.06 |
그거 아셨나요? - 체크 예외(Check Exception) (0) | 2024.07.28 |
Spring - 스프링 빈 (0) | 2024.07.23 |