티스토리 뷰
URLConnection
- 기본 JDK에 포함
- HTTP 외 여러 프로토콜 제공
- 다른 라이브러리와 달리 직관적으로 HTTP Method에 대응되지 않음
HttpClient
- org.apache.http.client에서 제공하는 라이브러리
- timeout 설정 가능
- 오직 HTTP 클라이언트 코드를 위한 컴포넌트. 서버측 프로세스는 지원하지 않음
- HTTPS와 Proxies을 이용한 연결을 지원한다
- Cookie 핸들링 지원
- HttpComponent 4.x 부터는 Thread 안정적 기능을 제공
RestTemplate
- spring 3부터 지원
- boilerplate code를 줄여준다
- HttpRequest를 효과적으로 구현한 것이다
- RestTemplate의 Converter는 내장 messageConverter와 더불어 막강하다
- AsyncRestTemplate과 마찬가지로 곧 deprecated 될 듯하다
- JMC : 로컬 서버에 대한 cpu, thread, 메모리를 모니터링 가능
- Spring 비동기 호출 → AsyncRestTemplate
- Spring 5, spring boot 2.0부터 deprecated 되었다.. 그래서 WebClient를 사용해야 한다.
WebClient
- Spring Web Reactive 모듈에 포함되어 있으며, RestTemplate을 대체한다
- compile 'org.springframework.boot:spring-boot-starter-webflux' 설정 추가
- 불변
- Netty의 HttpClient를 기본으로 한다
- HttpClient httpClient = HttpClient.create().secure(sslSpec -> ...); WebClient webClient = WebClient.builder() .clientConnector(new ReactorClientHttpConnector(httpClient)) .build();
- Reactive Stream 기반이므로 Mono 혹은 Flux로 리턴값을 받는다.
- 기본적으로 Non Blocking이다. retrieve 혹은 exchange 후에 block()를 호출하면 blocking 방식이 된다
- 반환값
- Mono
- 0-1개의 결과를 처리하는 Reactor 객체
- Flux
- 0-N 개의 결과를 처리하는 Reactor 객체
- Mono
'Java' 카테고리의 다른 글
Reflection (0) | 2021.12.22 |
---|---|
DAO VO DTO Entity (0) | 2021.12.22 |
lombok.Builder 로 빌더 패턴 사용한 클래스의 필드를 초기화하고 싶다면 (0) | 2021.12.22 |
Effective Java - Generic (Item 26 ~ 33) (0) | 2021.11.06 |
Generic (0) | 2020.10.22 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- aws
- fetchResults
- 메모리 릭
- 코테 log
- DesignSystem
- Generic
- WebClient
- 실용주의
- 이펙티브자바
- Java
- Spring-Boot
- Git
- TroubleShooting
- SQL 전문가 가이드
- ASCII
- 사고..
- annotation
- point
- gitignore
- Lombok
- IntelliJ
- ruby
- Encoding
- 이벤트스토밍
- ActiveAdmin
- SHA
- querydsl
- sort algorithm
- 암호화
- effective-java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함