일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Di
- XML
- 리눅스
- Ubunt
- POJO
- pointcut
- @Spring-Test
- STS
- java
- JDBC TEMPLATE
- Linux
- java spring
- 컨테이너
- Spring JDBC
- spring aop
- Dependency Injection
- 프로퍼티
- @test
- Framework
- @AspectJ
- spring framework
- unix
- Spring Boot
- myBatis
- spring
- AOP
- JdbcTemplate
- SpringJDBC
- @JUnit
- 마이바티스
Archives
- Today
- Total
개키우는개발자 : )
@Conditional과 Condition 본문
반응형
요약 및 핵심 개념
스프링 부트에서 조건부 자동 구성을 다루었습니다. 조건부 자동 구성은 특정 조건에 따라 Configuration 클래스나 Bean을 등록할지 말지 결정하는 기능으로, 이를 통해 애플리케이션의 불필요한 자원 사용을 줄이고 성능을 최적화할 수 있습니다.
핵심 내용
조건부 자동 구성 개념과 적용 방법:
@Conditional
애노테이션을 사용해 특정 조건에 따라 Configuration 클래스나 Bean을 등록할지 결정할 수 있습니다.@Conditional
애노테이션의 엘리먼트로Condition
인터페이스를 구현한 클래스를 지정하고,matches
메소드가true
를 반환하면 해당 Bean이나 Configuration이 등록.
서블릿 컨테이너 예제 (Tomcat과 Jetty):
- Tomcat과 Jetty 중 하나의 서블릿 컨테이너를 조건부로 선택해 사용하는 예제를 통해
@Conditional
애노테이션을 적용하는 방법을 설명. - 예제에서는 Jetty를 기본값으로 설정하고 Tomcat을 대체할 수 있도록 조건부 로딩을 구현.
- 서블릿 컨테이너 중복 시 예외 처리: 두 컨테이너가 동시에 등록되거나, 조건이 만족되지 않아 등록되지 않는 경우 예외가 발생할 수 있습니다.
- Tomcat과 Jetty 중 하나의 서블릿 컨테이너를 조건부로 선택해 사용하는 예제를 통해
@Conditional
의 적용 위치:@Conditional
은Configuration 클래스
와Bean 메소드
에 적용 가능:- Configuration 클래스에 적용된 경우, 해당 클래스 전체의 Bean 등록 여부를 결정.
- Bean 메소드에 적용된 경우, 해당 메소드의 Bean 등록 여부를 결정.
- Configuration 클래스에 붙은
@Conditional
이false
인 경우, Bean 메소드의 조건은 무시됨.
실습과 테스트의 중요성:
- 조건부 자동 구성의 다양한 사용 시나리오를 학습하기 위해 학습 테스트를 통한 실습이 권장됩니다.
- 조건 구현 방식의 이해와 연습을 통해 정확한 조건부 로딩 구현이 가능해집니다.
결론
스프링 부트의 조건부 자동 구성 메커니즘을 통해 효율적인 빈 등록과 서블릿 컨테이너 선택 방법을 배웠습니다. 조건부 로딩을 통해 애플리케이션의 불필요한 리소스 사용을 줄이고, 선택적인 기능 구현을 도울 수 있는 방법을 이해했습니다. 다음 강의에서는 보다 복잡한 조건 구현 방법에 대해 학습할 예정입니다.
반응형
'토비의 스프링 부트 - 이해와 원리 > 섹션8 - 조건부 자동 구성' 카테고리의 다른 글
스프링 부트의 @Conditional (2) | 2024.10.09 |
---|---|
자동 구성 정보 대체하기 (0) | 2024.10.09 |
커스톰 @Conditional (0) | 2024.10.09 |
@Conditional 학습테스트 (0) | 2024.10.09 |
스타터와 Jetty 서버 구성 추가 (0) | 2024.10.09 |
Comments