Springboot@Async 비동기 호출 방법 및 주의사항
2503 단어 JavaSpringBoot
비동기 호출 의 개념 비동기 호출 은 동기 호출 에 비해 일반적인 방법 은 프로그램 이 순서대로 실행 되 고 프로그램의 모든 단 계 는 이전 단계 가 실 행 된 후에 야 계속 아래로 실 행 될 수 있다.비동기 호출 은 기다 릴 필요 가 없습니다.메 인 스 레 드 를 막 지 않 은 상태 에서 높 은 시간 소모 방법 을 실행 할 수 있 습 니 다.
어떻게 비동기 호출 을 실현 합 니까?SpringBoot 를 사용 하지 않 을 때 우 리 는 보통 다 중 스 레 드 방식 으로 비동기 호출 을 실현 합 니 다.웹 프로젝트 에 대해 서 는 스 레 드 풀 을 사용 하여 다 중 스 레 드 를 만 들 고 호출 해 야 합 니 다.SpringBoot 는 편리 한@Async 주 해 를 제공 하여 비동기 방법 을 실현 합 니 다.
도입 할 jar 패키지:
org.springframework.boot
spring-boot-starter-parent
1.5.3.RELEASE
org.springframework.boot
spring-boot-starter-web
사용 할 주석:@Async:비동기 호출 방법 을 지정 합 니 다. @EnableAsync:비동기 호출 메커니즘 을 열 때 사용 합 니 다.@Config 주해 수식 이 있 는 클래스 에 주 해 를 달 수 있 습 니 다.
주의해 야 할 문제 1:비동기 방법의 정의 위치 문 제 는 비동기 호출 방법 을 하나의@Component 클래스 에 따로 두 거나 비동기 호출 방법 을@Controller 에 쓰 지 마 십시오.그렇지 않 으 면 호출 할 수 없습니다.SpringBoot 는@Transaction 을 사용 하려 면 트 랜 잭 션 차단 기 를 거 쳐 야 하기 때 문 입 니 다.이 트 랜 잭 션 차단 기 를 통과 하 는 방법 만 Spring 트 랜 잭 션 관리자 에 가입 할 수 있 습 니 다.같은 클래스 의 한 방법 에서 다른 방법 을 호출 하 는 것 은 한 번 의 트 랜 잭 션 차단 기 를 거 칠 수 있 기 때문에 뒤의 방법 이 트 랜 잭 션 주 해 를 사용 하면 적용 되 지 않 습 니 다.여기 서 비동기 호출 도 마찬가지 입 니 다.
참고 문헌 spring 사무@Transactional 같은 클래스 에서 의 방법 호출 은 유효 하지 않 습 니 다. SpringBoot 통합 편(2)비동기 호출 Async
주의해 야 할 문제 2:비동기 방법의 트 랜 잭 션 호출 문 제 는@Async 주해 방법 에서@Transaction 주 해 를 사용 하 는 것 이 잘못 되 었 습 니 다.@Async 주해 방법 에서 Service 층 의 트 랜 잭 션 방법 을 호출 하 는 것 이 효과 적 입 니 다.
주의해 야 할 문제 3:비동기 방법 은 반드시 인 스 턴 스 여야 합 니 다.정적 방법 은 override 에 다시 쓸 수 없 기 때 문 입 니 다.@Async 비동기 방법의 실현 원 리 는 하나의 대리 류 를 Bean 에 주입 하 는 것 입 니 다.이 대리 류 는 이 Bean 을 통합 시 키 고 이 비동기 방법 을 다시 써 야 하기 때 문 입 니 다.필요 한 것 은 인 스 턴 스 방법 입 니 다.
참고 문헌 Springboot@Async 비동기 방법
코드 예제 에 서 는 이 글 의 SpringBoot 집성 편(2)을 참고 할 수 있 습 니 다. 비동기 호출 Async
--------------------- 저자:19 년,다시 쓰기 시작 출처:CSDN 원문:https://blog.csdn.net/qq_27905183/article/details/80294497 저작권 성명:본 고 는 블 로 거들 의 오리지널 글 입 니 다.블 로 거들 링크 를 동봉 해 주 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.