스프링부트 프로젝트 Java 애플리케이션으로 실행하는 방법
@SpringBootApplication
public class MyApplication {
SpringApplication application = new SpringApplication(MyApplication.class);
application.setWebApplicationType(WebApplicationType.NONE);
application.run(args);
}
SpringApplication객의 run()메서드를 정적 메서드 호출방식이 아닌 정상적인 객체 생성 방식을 사용하고 run()메서드를 호출하기 전에 SpringApplication의 WebApplicationType을 NONE으로 설정했다.
이럴경우 현재 애플리케이션이 웹애플리케이션이 아닌 일반 자바 애플리케이션으로 실행되며, 내장 톰캣 서버도 구동되지 않는다. 또한 여러번 실행하더라도 포트 충돌 문제가 발생하지 않는다.
WebApplicationType을 SERVLET으로 변경하면 초기 설정과 동일해진다.
.NONE은 웹으로 동작하지 않도록 설정,
SERVLET은 스프링MVC기반으로 웹 애플리케이션을 구동하겠다는 설정,
REACTIVE는 스프링 5.0에서 추가된 비동기(Asynchronous)처리와 논블로킹 입출력(non-blocking I/O)을 지원하는 웹플럭스(WebFlux)를 적용할 때 사용한다.
이같은 설정은 외부 프로퍼티를 이용해서 좀더 쉽게 할 수 있다.
src/main/resources 소스 폴더에 application.properties라는 파일에
#WebApplication Type Setting
spring.main.web-application-type=none
으로 설정해서 사용하면 된다.
'프로그래밍 > Spring' 카테고리의 다른 글
logback logging pattern 표 (0) | 2019.12.13 |
---|---|
스프링 DevTools사용 설정 (0) | 2019.12.13 |
JPA Entity to Dto, Pageable 사용 예 (0) | 2019.12.12 |
BCrypt알고리즘 해시로 만든 암호 (0) | 2019.04.25 |
@AuthenticationPrincipal userDetail를 사용하는 예제 (0) | 2019.04.25 |