Java Spring Boot Web应用程序中的嵌入式Tomcat不以模块信息启动

Java Spring Boot Web应用程序中的嵌入式Tomcat不以模块信息启动,java,spring-boot,intellij-idea,java-module,Java,Spring Boot,Intellij Idea,Java Module,我想学习一些与java 9+类似的模块的新知识。 因此,我用springbootstarterweb和moduleinfo.java创建了一个springboot应用程序: module com.example.demo { requires spring.boot; requires spring.boot.autoconfigure; exports com.example.demo; opens com.example.demo; } 我用过 ->Jav

我想学习一些与java 9+类似的模块的新知识。
因此,我用
springbootstarterweb
moduleinfo.java
创建了一个springboot应用程序:

module com.example.demo {
    requires spring.boot;
    requires spring.boot.autoconfigure;

    exports com.example.demo;
    opens com.example.demo;
}
我用过
->Java 15.0.2
->弹簧靴2.4.3
->IntelliJ IDE 2020.3
->Ubuntu 20.04.2 LTS


要运行该应用程序,我使用IntelliJ-default run中的run按钮(绿色箭头),无需任何其他参数。问题是,当我尝试运行应用程序时,嵌入式tomcat服务器没有启动。
输出模块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)  
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)
但是,当我删除
模块info.java
时,一切正常,tomcat服务器启动。
不带模块信息的输出。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)  
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不会运行,因为它超出了我的模块

我可以做什么来运行应用程序

您认为,在SpringBoot中使用java模块有什么意义? 为什么?
为什么不呢?

您需要添加
requires org.apache.tomcat.embed.core要包含
org.apache.catalina.startup.Tomcat.class
,请参阅以获取有关Spring引导如何启动Tomcat服务器的详细信息