일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- @Spring-Test
- AOP
- Spring JDBC
- Dependency Injection
- java spring
- XML
- POJO
- unix
- STS
- JDBC TEMPLATE
- Spring Boot
- SpringJDBC
- JdbcTemplate
- spring framework
- @AspectJ
- 리눅스
- Ubunt
- Di
- spring
- Linux
- java
- pointcut
- @JUnit
- spring aop
- Framework
- 프로퍼티
- 컨테이너
- @test
- 마이바티스
- myBatis
Archives
- Today
- Total
개키우는개발자 : )
프로퍼티 빈의 후처리기 도입 본문
반응형
요약 및 핵심 개념
서버 프로퍼티 설정을 관리하는 방법과 이를 빈으로 등록하는 과정을 설명했습니다. 특히, 자동 구성 클래스에 조건부 애노테이션을 사용하고, 빈 후처리기(Post Processor)를 통해 프로퍼티 바인딩을 보다 효율적으로 처리하는 방법을 다뤘습니다.
핵심 내용
프로퍼티 클래스를 빈으로 등록:
- 서버 설정에 필요한 프로퍼티를 별도의 클래스로 분리하고, 이를 빈으로 등록하여 톰캣이나 다른 서버 설정 시 쉽게 재사용할 수 있도록 합니다.
- 하지만 설정 클래스가 많아질 수 있으며, 서블릿 컨테이너(Tomcat, Jetty, Undertow)별로 다른 설정을 적용해야 한다는 문제점이 발생합니다.
자동 구성 클래스의 조건부 애노테이션:
- 특정 상황에서만 프로퍼티 빈을 생성하기 위해
@Conditional
애노테이션을 사용하여 Tomcat, Jetty, Undertow 등의 조건을 만족할 때만 빈을 등록합니다. - 불필요한 설정 로직을 줄이고 효율적으로 프로퍼티 빈을 관리할 수 있게 됩니다.
- 특정 상황에서만 프로퍼티 빈을 생성하기 위해
빈 후처리기(Post Processor) 사용:
- 빈 후처리기를 통해 프로퍼티가 빈으로 등록된 후 필요한 값을 자동으로 바인딩할 수 있습니다.
- 이 과정에서 애노테이션을 활용하여 특정 프로퍼티 클래스에만 바인딩 작업을 진행할 수 있습니다.
- Spring의
AnnotationUtils
와Binder
유틸리티를 사용해 환경(Environment) 설정을 자동으로 바인딩하는 구조를 제공합니다.
Prefix 사용:
- Prefix를 사용하여 프로퍼티 이름의 충돌을 방지하고 서버 설정 관련 프로퍼티들을 보다 체계적으로 관리할 수 있습니다.
- 예를 들어,
server.port
와 같이 서버 관련 프로퍼티에 네임스페이스를 지정해 프로퍼티의 맥락을 명확히 구분할 수 있습니다.
Enable 애노테이션을 통한 자동 구성:
@EnableConfigurationProperties
를 통해 자동으로 프로퍼티 빈을 활성화시키고, 이 설정들이 필요한 경우에만 빈으로 등록되도록 관리합니다.- 이를 통해 불필요한 빈 로딩을 방지하고, 자동 구성 클래스의 유연성을 확보할 수 있습니다.
결론
프로퍼티 설정의 효율적인 관리 방법을 중점으로 다뤘습니다. 빈 후처리기와 자동 구성 클래스를 활용해 프로퍼티 값의 바인딩을 자동화하고, 조건부 애노테이션과 Prefix를 통해 구체적인 설정을 쉽게 관리할 수 있음을 배웠습니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션9 - 외부 설정을 이용한 자동 구성' 카테고리의 다른 글
프로퍼티 클래스의 분리 (0) | 2024.10.13 |
---|---|
@Value와 PropertySourcesPlaceholderConfigurer (0) | 2024.10.13 |
자동 구성에 Environment 프로퍼티 적용 (0) | 2024.10.13 |
Environment 추상화와 프로퍼티 (0) | 2024.10.13 |
Comments