본문 바로가기

Spring/인프런 토비의 Spring Boot49

섹션 7-4 [조건부 자동구성] 커스텀 @Conditional 커스텀 @Conditional@MyAutoConfiguration @Conditional(JettyWebServerConfig.JettyCondition.class) public class JettyWebServerConfig { @Bean("jettyWebServerFactory") public ServletWebServerFactory servletWebServerFactory() { return new JettyServletWebServerFactory(); } static class JettyCondition implements Condition { @Override public boolean mat.. 2024. 6. 27.
섹션 7-3 [조건부 자동구성] @Conditional, Condition 학습 테스트 @Conditional, Condition 학습 테스트public class ConditionalTest { @Test void conditional() { // true // Bean 구성정보를 확인하여 테스트할 수 있는객체 ApplicationContextRunner 생성 ApplicationContextRunner contextRunner1 = new ApplicationContextRunner(); // Configuration 구성정보 Class를 매개변수로 넘겨주고 contextRunner1.withUserConfiguration(Config1.class) .. 2024. 6. 27.
섹션 7-2 [조건부 자동구성] @Conditional과 Condition @Conditional과 Condition@Conditional은 class레벨 뿐만 아니라 method레벨에도 애노테이션을 사용할 수 있습니다. 다만 class와 method에 동시에 애노테이션을 사용할경우 class레벨의 @Conditional이 우선순위가 가장 높으며 class레벨의 @Conditional의 Condition구현체의 값이 false라면 method레벨의 값은 체크하지않고 무조건 false로 bean으로 등록되지 않습니다. @MyAutoConfiguration /* JettyWebServerConfig를 ConFiguration class Bean으로 등록할 것인지 스프링 컨테이너에게 알려주는 애노테이션 @Conditional에는 Condition의 구현체 클래스를.. 2024. 6. 27.
섹션 7-1 [조건부 자동구성] 스타터와 Jetty 서버 구성 추가 스타터와 Jetty 서버 구성 추가plugins { id 'java' id 'org.springframework.boot' version '2.7.6' id 'io.spring.dependency-management' version '1.1.5' } group = 'com.tobyspring' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' // Spr.. 2024. 6. 27.
섹션 6-5 [자동 구성 기반 애플리케이션] 동적인 자동 구성 정보 등록 동적인 자동 구성 정보 등록package com.tobyspring.config; import com.tobyspring.config.autoconfig.DispatcherServletConfig; import com.tobyspring.config.autoconfig.TomcatWebserverConfig; import org.springframework.context.annotation.Import; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target.. 2024. 6. 15.
섹션 6-8 [자동 구성 기반 애플리케이션] @Configuration과 proxybeanMethods @Configuration과 proxybeanMethods 일반적으로 팩토리 메소드를 통해 객체를 생성한다면 팩토리 메소드를 실행할때마다 새로운 객체가 생성되게 됩니다.static class MyConfig { Common common() { return new Common(); } Bean1 bean1() { return new Bean1(common()); } Bean2 bean2() { return new Bean2(common()); } } 일반적으로 위 처럼 MyConfig클래스를 만들고 bean1, bean2를 생성하는 팩토리 메소드를 가질때 Bea.. 2024. 6. 14.