본문 바로가기

Spring Boot

20230528_스프링부트학습

org.springframework.boot.autoconfigure 안에는 많은 설정이 있다. 약114가지의 자동구성 설정

tomcat, jetty, undertow 라는 서블릿컨테이너가 있음.

 

@Conditional 사용예시

 

@MyAutoConfiguration
@Conditional(TomcatWebServerConfig.TomcatContion.class)
public class TomcatWebServerConfig {
@Bean("tomcatWebServerFactory")
public ServletWebServerFactory servletWebServerFactory() {
return new TomcatServletWebServerFactory();
}


static public class TomcatContion implements Condition {
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return false;
}
}
}
@MyAutoConfiguration
@Conditional(JettyWebServerConfig.JettyCondition.class)
public class JettyWebServerConfig {
@Bean("jettyWebServerFactory")
public ServletWebServerFactory servletWebServerFactory() {

return new JettyServletWebServerFactory();
}

static class JettyCondition implements Condition {

@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return true;
}
}

}
@Override
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
return ClassUtils.isPresent("org.eclipse.jetty.server.Server", context.getClassLoader());
}

ClassUtils의 isPresent 메서드를 사용해서 라이브러리 존재여부를 체크할수 있음.

 

사용자 구성정보를 통해 자동구성정보를 대체해서 사용할수 있지만 그에 대한 파급효과를 인지하고 사용해야한다.

(사용자 구성정보가 스프링부트의 자동구성 정보에 우선하기 때문)

'Spring Boot' 카테고리의 다른 글

스프링부트학습_20230604_2  (0) 2023.06.04
20230604_스프링부트학습  (0) 2023.06.04
20230526_스프링부트 학습  (0) 2023.05.26
20230521_스프링부트 학습  (0) 2023.05.21
스프링부트_20230520  (0) 2023.05.20