SpringBoot之——发布到外部Tomcat

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/l1028386804/article/details/69940851

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/69940851

1、修改打包方式

将这个 spring Boot 项目的打包方式设置为 war。

<packaging>war</packaging>
   
   
SpringBoot 默认有内嵌的 tomcat 模块,因此,我们要把这一部分排除掉。
即:我们在 spring-boot-starter-web 里面排除了 spring-boot-starter-tomcat ,但是我们为了在本机测试方便,我们还要引入它,所以我们这样写:

   
   
  1. <dependency>
  2. <groupId>org.springframework.boot </groupId>
  3. <artifactId>spring-boot-starter-web </artifactId>
  4. <exclusions>
  5. <exclusion>
  6. <artifactId>log4j-over-slf4j </artifactId>
  7. <groupId>org.slf4j </groupId>
  8. </exclusion>
  9. <exclusion>
  10. <groupId>org.springframework.boot </groupId>
  11. <artifactId>spring-boot-starter-tomcat </artifactId>
  12. </exclusion>
  13. </exclusions>
  14. </dependency>

   
   
  1. <dependency>
  2. <groupId>org.springframework.boot </groupId>
  3. <artifactId>spring-boot-starter-tomcat </artifactId>
  4. <scope>provided </scope>
  5. </dependency>

2、继承SpringBootServletInitializer

提供一个 SpringBootServletInitializer 子类,并覆盖它的 configure 方法。我们可以把应用的主类改为继承 SpringBootServletInitializer。或者另外写一个类。


   
   
  1. @SpringBootApplication
  2. public class Application extends SpringBootServletInitializer {
  3. @Override
  4. protected SpringApplicationBuilder configure(
  5. SpringApplicationBuilder application) {
  6. return application.sources(Application.class);
  7. }
  8. public static void main(String[] args) {
  9. SpringApplication.run(Application.class, args);
  10. }
  11. }
注意:部署到 tomcat 以后,访问这个项目的时候,须要带上这个项目的 war 包名。
另外,我们还可以使用 war 插件来定义打包以后的 war 包名称,以免 maven 为我们默认地起了一个带版本号的 war 包名称。例如:

   
   
  1. <plugin>
  2. <groupId>org.apache.maven.plugins </groupId>
  3. <artifactId>maven-war-plugin </artifactId>
  4. <configuration>
  5. <warName>lyz </warName>
  6. </configuration>
  7. </plugin>
例如:
http://localhost:8080/lyz/test
   
   
其中,lyz 是我放在 tomcat 上的 war 包名。



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/l1028386804/article/details/69940851

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/69940851

1、修改打包方式

将这个 spring Boot 项目的打包方式设置为 war。

<packaging>war</packaging>
 
 
SpringBoot 默认有内嵌的 tomcat 模块,因此,我们要把这一部分排除掉。
即:我们在 spring-boot-starter-web 里面排除了 spring-boot-starter-tomcat ,但是我们为了在本机测试方便,我们还要引入它,所以我们这样写:

 
 
  1. <dependency>
  2. <groupId>org.springframework.boot </groupId>
  3. <artifactId>spring-boot-starter-web </artifactId>
  4. <exclusions>
  5. <exclusion>
  6. <artifactId>log4j-over-slf4j </artifactId>
  7. <groupId>org.slf4j </groupId>
  8. </exclusion>
  9. <exclusion>
  10. <groupId>org.springframework.boot </groupId>
  11. <artifactId>spring-boot-starter-tomcat </artifactId>
  12. </exclusion>
  13. </exclusions>
  14. </dependency>

 
 
  1. <dependency>
  2. <groupId>org.springframework.boot </groupId>
  3. <artifactId>spring-boot-starter-tomcat </artifactId>
  4. <scope>provided </scope>
  5. </dependency>

2、继承SpringBootServletInitializer

提供一个 SpringBootServletInitializer 子类,并覆盖它的 configure 方法。我们可以把应用的主类改为继承 SpringBootServletInitializer。或者另外写一个类。


 
 
  1. @SpringBootApplication
  2. public class Application extends SpringBootServletInitializer {
  3. @Override
  4. protected SpringApplicationBuilder configure(
  5. SpringApplicationBuilder application) {
  6. return application.sources(Application.class);
  7. }
  8. public static void main(String[] args) {
  9. SpringApplication.run(Application.class, args);
  10. }
  11. }
注意:部署到 tomcat 以后,访问这个项目的时候,须要带上这个项目的 war 包名。
另外,我们还可以使用 war 插件来定义打包以后的 war 包名称,以免 maven 为我们默认地起了一个带版本号的 war 包名称。例如:

 
 
  1. <plugin>
  2. <groupId>org.apache.maven.plugins </groupId>
  3. <artifactId>maven-war-plugin </artifactId>
  4. <configuration>
  5. <warName>lyz </warName>
  6. </configuration>
  7. </plugin>
例如:
http://localhost:8080/lyz/test
 
 
其中,lyz 是我放在 tomcat 上的 war 包名。

扫描二维码关注公众号,回复: 3158694 查看本文章


猜你喜欢

转载自blog.csdn.net/u013278314/article/details/82148243