1.META-INF에 Jetty 추가

이 구성들은 자동 구성 방식에 의해 AutoConfiguration의 imports 파일에 기술

 

2. 잘 올라갔는지 grale에서 확인

 

3. 톰캣과 마찬가지로 config 파일 생성

Tomcat Seblet Container 말고 Jetty Seblet Container 사용할 수 있도록 스타터 추가 후

Configuration 클래스를 만들어 Jetty 사용하는 웹서버 Factory bean이 만들어지도록 등록

 

이 구성들은 자동 구성 방식에 의해 AutoConfiguration의 imports 파일에 기술

 

톰캣과 두 개 이름이 동일할 경우 충동한다고 스프링 컨테이너가 초기화할 때 에러 발생 할 수 있으므로 이름 구분해주기

TomcatWebServerConfig 파일에서도 이름 지정

@Bean("tomcatWebServerFactory")

 

4. 설정만 해줬을때는 아래와 같은 오류 발생

2개 있다고 안됨

Unable to start ServletWebServerApplicationContext due to multiple ServletWebServerFactory beans : tomcatWebServerFactory,JettyWebServerFactory

 

 조건을 달아서 어떤 구성 정보를 활용할건지 알려줘야함

 

5.JettyWebServerConfig에 @Condition 추가

@Conditional(JettyWebServerConfig.JettyCondition.class)
static public class JettyCondition implements Condition {
    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        return false;    // true 반환하면 이 빈 구성 정보를 사용하겠다는 뜻, tomcat 말고 jetty 사용
    }
}

 

true 반환하면 이 빈 구성 정보를 사용하겠다는 뜻

jetty 사용하고 싶으면JettyWebServerConfig에서 반환값 true 설정해주고

나머지 TomcatWebServerConfig은 false 반환

 

Tomcat을 사용하고 싶으면 반대로 설정해주면 됨

 

 

6. 실행하고 console 확인

'SpringBoot > 프로젝트' 카테고리의 다른 글

자동 구성 정보 대체하기  (0) 2023.11.30
@Conditional 학습 테스트  (0) 2023.11.30
Test Code 작성  (0) 2023.11.27
DI를 이용한 Decorator  (2) 2023.11.27
섹션2. 스프링 부트 시작하기  (0) 2023.11.21

+ Recent posts