개발하는 자몽

[트랜잭션] @Transactional AOP 본문

Java/Spring

[트랜잭션] @Transactional AOP

jaamong 2022. 9. 23. 15:46

@Transactional 애노테이션은 스프링이 제공하는 트랜잭션 AOP이다. @Transactional 애노테이션은 메서드와 클래드에 붙일 수 있다. 클래스에 붙이면 외부에서 호출 가능한 public 메서드가 AOP 적용 대상이 된다.

 

@Transactional 애노테이션 하나만 선언해서 편리하게 트랜잭션을 적용하는 것을 선언적 트랜잭션 관리(Declarative Transaction Management)라고 한다. 선언적 트랜잭션 관리는 해당 로직에 트랜잭션을 적용하겠다고 어딘가에 선언하기만 하면 트랜잭션이 적용되는 방식이다.

 

참고
스프링 AOP를 적용하려면 어드바이저, 포인트컷, 어드바이스가 필요하다. 스프링은 트랜잭션 AOP 처리를 위해 다음 클래스를 제공한다. 스프링 부트를 사용하면 해당 빈들은 스프링 컨테이너에 자동으로 등록된다.

어드바이저 : BeanFactoryTransactionaAttributeSourceAdvisor
포인트컷 : TransactionAttributeSourcePointCut
어드바이스 : TransactionInterceptor

 

동작 원리는 다른 블로그 글을 확인

 

@Transactional 동작 원리

들어가며 해당 포스팅은 Spring boot 2.2.0.RELEASE 환경에서 진행됐다. @Transactional이란? 비즈니스로직이 트랜잭션 처리를 필요로할 때 트랜잭션 처리 코드가 비즈니스 로직과 공존한다면 코드 중복이

hwannny.tistory.com

 

'Java > Spring' 카테고리의 다른 글

스프링 예외 추상화  (1) 2022.09.29
@SpringBootTest, @TestConfiguration  (0) 2022.09.24
[Spring MVC] Model, @ModelAttribute  (1) 2022.09.10
[Spring MVC] 뷰 템플릿, 템플릿 엔진, thymeleaf  (0) 2022.09.08
프록시(Proxy)  (0) 2022.08.13
Comments