티스토리 뷰
우리가 보통 api 통신을 하기 위해서 RestTemplate 를 사용합니다.
사용하다가 가끔 Async 방식을 사용해야 할 때가 있습니다.
음... 저 같은 경우는 다른 서버에 Push처럼 notice 줄 때 굳이 응답 값을 기다릴 필요가 없어서 Async 방식을 사용했습니다.
처음에는 그냥 @Async 어노테이션만 사용하면 되는 줄 알았는데.. 세상이나 마상에나... Async로 작동을 안했습니다. ㅠㅠ
음.. 찾아보니 RestTemplate는 sync방식이기 때문에 일반적인 @Async가 안됐던... .. ....
그래서 Async 방식으로 통신을 하기 위해서는 2가지 방법으로 나뉩니다.
1. AsyncRestTemplate
2. WebClient (webflux를 디펜젼시에 추가)
여기서는 일반으로 많이 사용하는 1번 방식 AsyncRestTemplate를 사용하겠습니다.
먼저 아래와 같이 bean을 선언합니다.
@Bean
public AsyncRestTemplate asyncRestTemplate(){
return new AsyncRestTemplate();
}
그리고 사용할 class에서 @autowired 선언 후, 일반적인 RestTemplate사용하듯 사용하시면 됩니다. RestTemplate와 사용법은 동일 합니다.
@Autowired AsyncRestTemplate asyncRestTemplate;
asyncRestTemplate.postForEntity(url, json, String.class);
}catch (RestClientException e){
e.printStackTrace();
logger.debug("PUSH SEND ERROR", e);
}catch (Exception e){
e.printStackTrace();
logger.debug("PUSH ERROR", e);
}
저 같은 경우는 단순하게 알리는 용도로만 사용하기 때문에, 저렇게 api를 보내고 종료 시킵니다. 혹시나 응답 값이 에러가 와도 확인용으로 로그만 남깁니다.
'jvm언어관련 > Spring(SpringBoot)' 카테고리의 다른 글
간단한 springboot error 처리 (0) | 2019.02.22 |
---|---|
[책]자바 기반의 마이크로서비스 이해와 아키텍처 구축하기 (0) | 2019.02.18 |
EhCache 사용(Spring+Maven) (0) | 2019.02.11 |
스프링의 DI(Dependency Injection) 이란? (0) | 2019.01.21 |
spring boot 로컬환경에서 https 사용하기 (0) | 2019.01.01 |
- Total
- Today
- Yesterday
- 이펙티브자바
- update query set multiple
- effectivejava
- update set multiple
- 이것이 자바다
- SpringBoot
- gradle
- update set multi
- 다중 업데이트
- MSSQL
- update query
- 슬랙봇
- 뱅크샐러드
- vue.js
- 뱅크샐러드 유전자
- Slack
- 슬랙
- spring-boot-starter-data-redis
- java
- update query mutiple row
- 싱글턴
- 뱅셀 유전자
- multiple row update
- 업데이트 쿼리
- 슬랙 /
- visual studio code
- springboot https
- 몽고DB 완벽가이드
- update query multi row
- 그레이들
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |