1.3段階の操作を構成します
1.プロジェクトのパッケージタイプを変更します
<packaging>war</packaging>
2.埋め込まれたTomcat依存関係を削除します(必須ではありません)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<!-- scope设置为provided, 表明依赖由外部容器提供,在打包时会将该包排除 -->
<scope>provided</scope>
</dependency>
パッケージ化されたwarパッケージが解凍された後、スコープが提供する依存関係(ここでは埋め込みtomcat)は、libディレクトリではなくlib提供のディレクトリに配置されます。
3. SpringBootServletInitializerを継承し、configureメソッドをオーバーライドします
3.1。方法1
@RestController
@SpringBootApplication
public class TomcatDemoApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(TomcatDemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(TomcatDemoApplication.class);
}
@GetMapping("/hello")
public String hello() {
return "hello world";
}
}
3.2。方法2
@RestController
@SpringBootApplication
public class TomcatDemoApplication extends SpringBootServletInitializer{
public static void main(String[] args) {
SpringApplication.run(TomcatDemoApplication.class, args);
}
@GetMapping("/hello")
public String hello() {
return "hello world";
}
}
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(TomcatDemoApplication.class);
}
}
2つ、パッケージの展開手順
1. mvnパッケージはパッケージ化されており、パッケージ名のデフォルトは次のとおりです。
<artifactId>-<version>.<packaging>
次の項目を構成します。
<groupId>com.example</groupId>
<artifactId>tomcat-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
パッケージ化後のパッケージ名は、tomcat-demo-0.0.1-SNAPSHOT.warです。
2.完成したwarパッケージを外部Tomcatのwebappディレクトリに置き、bin /start.batを起動します。
3. http:// localhost:8085 / tomcat-demo-0.0.1-SNAPSHOT / helloにアクセスする と、通常、ページは「helloworld」を返します。
3つ目は注意が必要な事項
1.外部Tomcatを使用してプロジェクトをデプロイした後、SpringBootの一部の内部構成が無効になります。次に例を示します。
server.port, server.servlet.context-path 等, 因为这些配置都是针对内嵌tomcat容器的,要修改端口号和部署根路径的话,需要修改外部tomcat的相关配置
2.パッケージ化後にデフォルトのパッケージ名を変更します
<build>
<finalName>tomcat-demo</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
このようにパッケージ化した後、パッケージ名は
<finalName>.war, 这里即为tomcat-demo.war
アクセスフォームは次のように変更されます:http:// localhost:8085 / tomcat-demo / hello