@Async

2023. 2. 24. 16:11@Annotaion Book

@Async는 Spring Framework에서 비동기적인 메서드 호출을 가능하게 하는 어노테이션 중 하나입니다.

@Async 어노테이션을 사용하면, 메서드 호출 시 Spring은 별도의 스레드를 생성하여 해당 메서드를 비동기적으로 실행합니다. 이를 통해, 요청-응답 시간을 단축하거나, 복잡한 처리 작업을 비동기적으로 처리할 수 있습니다.

@Async 어노테이션을 사용하기 위해서는 다음과 같은 조건을 만족해야 합니다.

  1. @EnableAsync 어노테이션이 지정된 클래스가 존재해야 합니다.
  2. 비동기적으로 실행될 메서드는 public 메서드로 지정되어야 합니다.
  3. 메서드는 void 또는 Future를 반환해야 합니다.

아래는 @Async 어노테이션을 사용하여 비동기적으로 메서드를 실행하는 예시 코드입니다.

@Service
public class UserServiceImpl implements UserService {
 
    @Async
    @Override
    public void sendEmail(User user, String content) {
        // Send email
    }
}

위 코드에서는 @Async 어노테이션을 사용하여 sendEmail() 메서드를 비동기적으로 실행하고 있습니다. 이제 sendEmail() 메서드가 호출되면, Spring은 별도의 스레드에서 해당 메서드를 실행합니다.

@Async 어노테이션을 사용하여 메서드를 비동기적으로 실행할 때는, 메서드 호출이 끝나지 않은 상태에서 다음 코드가 실행될 수 있으므로, 이에 대한 처리가 필요합니다. 예를 들어, Future를 반환하여 비동기 작업의 결과를 받아오는 방법 등을 사용할 수 있습니다.

 

'@Annotaion Book' 카테고리의 다른 글

@ExceptionHandler  (0) 2023.02.24
@Scheduled  (0) 2023.02.24
@RequestParam  (0) 2023.02.24
@Value  (0) 2023.02.24
@Bean  (0) 2023.02.24