모듈과 같은 Java 9+로 새로운 것을 배우고 싶습니다.
그래서 다음 spring-boot-starter-web
과 module-info.java
같이 스프링 부트 애플리케이션을 만들었습니다 .
module com.example.demo {
requires spring.boot;
requires spring.boot.autoconfigure;
exports com.example.demo;
opens com.example.demo;
}
나는
-> Java 15.0.2-
> Spring Boot 2.4.3-
> IntelliJ IDE 2020.3-
> Ubuntu 20.04.2 LTS를 사용했습니다.
응용 프로그램을 실행하려면 IntelliJ에서 실행 버튼 (녹색 화살표)을 사용합니다. 기본적으로 추가 매개 변수없이 실행됩니다. 그리고 문제는 응용 프로그램을 실행하려고 할 때 내장 된 Tomcat 서버가 시작되지 않는다는 것입니다.
module-info.java로 출력
2021-03-12 08:57:12.182 INFO 4843 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication using Java 15.0.2 on vagrant-VirtualBox with PID 4843
2021-03-12 08:57:12.184 INFO 4843 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2021-03-12 08:57:13.081 INFO 4843 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 1.511 seconds (JVM running for 3.418)
그러나 제거 module-info.java
하면 모든 것이 정상이며 바람둥이 서버가 시작되었습니다.
module-info.java없이 출력
2021-03-12 09:01:49.627 INFO 4928 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication using Java 15.0.2 on vagrant-VirtualBox with PID 4928
2021-03-12 09:01:49.633 INFO 4928 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2021-03-12 09:01:50.897 INFO 4928 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2021-03-12 09:01:50.912 INFO 4928 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-03-12 09:01:50.912 INFO 4928 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.43]
2021-03-12 09:01:50.958 INFO 4928 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2021-03-12 09:01:50.958 INFO 4928 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1188 ms
2021-03-12 09:01:51.179 INFO 4928 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2021-03-12 09:01:51.320 INFO 4928 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2021-03-12 09:01:51.329 INFO 4928 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 2.271 seconds (JVM running for 3.774)
출력의 차이가 궁금합니다. module-info.java
Tomcat을 사용할 때 내 모듈을 넘어서 실행되지 않습니까?
앱을 실행하려면 어떻게해야합니까?
Spring Boot에서 Java 모듈을 사용하는 것이 합리적이라고 생각하십니까? 왜? 왜 안돼?
당신은 추가 할 필요 requires org.apache.tomcat.embed.core;
에 modules-info.java 포함 org.apache.catalina.startup.Tomcat.class
, 볼 이 문서 봄 Tomcat 서버를 시작 부팅 방법에 대한 자세한 내용을.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다