Java/Spring Framework 4

RestClient 알아보기

목차[RestClient?]RestClient는 SpringBoot 3.2에 추가된 것으로 기존 RestTemplate을 대체하게 될 것이며 reactive 한 기능도 포함되어 있다고 한다.  소개 문서: https://spring.io/blog/2023/07/13/new-in-spring-6-1-restclient가이드 문서: https://docs.spring.io/spring-framework/reference/integration/rest-clients.html RestClient는 Spring framework 6.1(Spring boot 3.2)에 새로 추가된 동기식 HTTP Client로 Spring 애플리케이션에서 REST API 호출을 위한 HTTP 요청을 보낼 수 있다.RestClien..

Annotation 정리

[AutoConfigurationBefore] Target.class 전에 어노테이션이 선언된 Class를 진행한다. [ConditionalOnProperty] Spring 기반 Application에서는 구성 속성의 존재와 값에따라 조건부로 빈을 생성해야 하는 케이스가 있다. ex) 속성 값을 "prod" 혹은 "test"로 설정했는지 여부에 따라 운영이나 테스트 데이터베이스를 가리키도록 Datasource 빈을 등록할 수 있다. 이럴때 사용하는 케이스 ConditionalOnProperty 어노테이션을 사용하면 구성 속성의 존재여부에 따라 조건부로 빈을 등록할수 있게 되는 것

Bean 생성

BeanDefinitionRegistryPostProcessor Spring에서 Bean을 동적으로 생성하는 방법 중 하나. 스프링에서는 보통 정적으로 Bean을 생성한다. 근데 DcmDatasource 같은 경우는 properties파일을 읽어다가 여러 개의 DcmDataSource Bean을 생성해야 한다. (configuration에서 dcm properties수가 몇개가 될 지 모르는 상황) 결국 동적으로 Bean을 생성해줘야하는 상황이다. 이럴 때 사용할 수 있다. ex) configuration에 언급된 에이전트 개수 (DB A서버,DB B서버..) 만큼 datasource를 만들어야 하는 상황 샘플코드 BeanDefinitionRegistryPostProcessor를 사용하기 위해서는 인터페..

Auto Configuration

[Auto Configuration?] AutoConfiguration을 알아보기 전에 "@SpringBootApplication"을 먼저 알아본다. "@SpringBootApplication"은 3가지 어노테이션을 합친것 "@SpringBootConfiguration": "@Configuration"과 같은 기능을 한다. "@EnableAutoConfiguration": "/reousrce/META-INF/spring.factories중 EnableAutoConfiguration에 정의된 Configuration들을 자동으로 빈등록한다. "@ComponentScan": 컴포넌트 어노테이션을 모두 스캔해서 빈으로 등록 이 때 ComponentScan이 먼저 일어난 후 AutoConfiguration의 B..