<현재 톰캣 서버 포트 번호 8080 으로 자동으로 실행되는데
사용자 구성정보에 포트 번호 9090 으로 변경하기>
1. WebServerConfiguration class 만들기
@Configuration(proxyBeanMethods = false)
public class WebServerConfiguration {
@Bean
ServletWebServerFactory customerWebServerfactory(){
TomcatServletWebServerFactory serverFactory = new TomcatServletWebServerFactory();
serverFactory.setPort(9090);
return serverFactory;
}
}
setPort 사용하여 포트 9090으로 변경
proxyBeanMethods = false
특별하게 bin 사이에 상호 메소드 호출을 통해 의존관계 주입을 넣을게 아니라면
proxyBeanMethods를 fasle로 설정
2. 테스트 해보면 오류
아래와 같이 멀티풀 오류가 뜸
Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to multiple ServletWebServerFactory beans : customerWebServerfactory,tomcatWebServerFactory
* 사용자 구성정보와 자동구성정보에 똑같은 Bean이 있다면
사용자 구성정보에 있는 Bean이 우선적 그 후 자동구성정보가 실행되는데
사용자 구성정보에 적힌 Bean에 이미 Tomcat이 있어 자동구성정보도 실행되면서 에러 발생
3. 해결방안
자동정보인 tomcatWebServerFactory에 Bean에 아래 어노테이션 추가
@ConditionalOnMissingBean
사용자 구성 정보에 개발자가 이거랑 같은 타입의 빈을 구성정보로 만들었는지 확인 후
없을 경우에 해당 빈 생성해주는 어노테이션
4. 다시 테스트 해보면 9090 포트로 Tomcat 서버 확인 가능

'SpringBoot > 프로젝트' 카테고리의 다른 글
[오류해결]@RequiredArgsConstructor 를 사용할때 주의점 (0) | 2023.12.21 |
---|---|
Environment properties 적용 (2) | 2023.12.06 |
@Conditional 학습 테스트 (0) | 2023.11.30 |
[Spring Boot] jetty 서버 구성 추가하기 (0) | 2023.11.29 |
Test Code 작성 (0) | 2023.11.27 |