SEB_BE_43 / 23.03.02 회고

rse·2023년 3월 2일
0

코드스테이츠_BE_43

목록 보기
45/65

오늘

  • Spring Transaction

AOP 방식으로 트랜잭션 적용하기

  1. AOP 방식으로 트랜잭션을 적용하기 위해 Configuration 클래스를 정의해준다.

@Configuration 어노테이션은 스프링 프레임워크에서 빈(Bean)을 정의하고 구성하는 자바 설정 클래스임을 나타내는 어노테이션입니다.

위 코드에서도 TxConfig 클래스는 스프링 애플리케이션에서 사용되는 빈을 정의하고 있으며, @Bean 어노테이션이 적용된 메서드를 통해 TransactionInterceptor와 Advisor 빈을 생성하고 있습니다.

@Configuration 어노테이션을 추가하지 않으면, 스프링은 해당 클래스가 애플리케이션 컨텍스트의 구성요소가 아니라 일반적인 클래스로 처리합니다. 따라서 스프링이 @Bean 어노테이션이 적용된 메서드를 호출하여 빈을 생성하고 구성하지 않게 됩니다.

즉, @Configuration 어노테이션은 스프링에게 해당 클래스가 빈 구성 클래스임을 알려주는 역할을 합니다. 따라서 스프링 애플리케이션에서 빈을 구성하고 사용하기 위해서는 @Configuration 어노테이션을 반드시 추가해주어야 합니다.

  1. 애플리케이션에 트랜잭션을 적용하기 위해서는 TransactionManager 객체가 필요하다.

  2. 트랜잭션 어드바이스용 TransactionIntercetor 빈 등록.

  3. Advisor 빈 등록

실습 과제

비동기로 실행

비동기란?
오래된 응답을 클라이언트가 기다리지 않고 바로 응답을 받을 수 있는 상태

현재 실습 과제에서는 sleep 메서드를 사용해 5초 동안 응답을 기다려야하는 상태인데 만약 동기로 되어있을 경우 클라이언트가 같이 5초를 기다린 후 응답을 받을 수 있음.

throws InterruptedException 는 쓰레드가 일시정지인 상태일 때 다른 쓰레드가 현재 스레드를 인터럽트 하게 되면 발생하는 에러를 적어놓은 것이다.

인터럽트란 다른 Thread가 현재 thread의 작업을 중단시키는 것을 말한다.

Java에서는 Thread.interrupt() 메서드를 이용하여 다른 스레드에서 현재 스레드를 인터럽트 할 수 있다. 현재 Thread.sleep() 메서드로 일시정지 상태일 때 다른 스레드가 인터럽트 하게 되면
InterruptedException이 발생하여 해당 스레드의 작업이 중지된다.

보통 인터럽트는 다른 스레드가 현재 스레드의 작업을 중지시켜야 할 때 사용된다. 예를 들어, 어떤 작업이 오래 걸리는 경우에 다른 스레드에서 해당 작업을 중지시키고 다른 작업으로 전환하는 등의 제어를 할 수 있다.

이벤트 발생

profile
기록을 합시다

0개의 댓글