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 |