SpringBoot在怎么外置Tomcat

这篇文章将为大家详细讲解有关SpringBoot在怎么外置Tomcat,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联建站是一家专业提供梁园企业网站建设,专注与网站设计制作、成都网站建设HTML5建站、小程序制作等业务。10年已为梁园众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

配置包管理文件

打开项目根目录的pom.xml文件,在project标签下声明打包格式为war,代码如下所示:

 war

排除内置tomcat

打包时默认会将内置的tomcat打包进去,这就造成了冲突问题,所以此处我们需要将内置的排除掉,在dependencies标签下添加下述依赖。

    org.springframework.boot   spring-boot-starter-tomcat      provided 

此处还有一个做法是在spring-boot-starter-web依赖内排除掉依赖内排除掉tomcat,这样做他会把websocket相关的包也给排除掉,你项目内的websocket就没法使用了,需要手动多引入javax.websocket-api这个依赖,这个依赖的最后更新时间是2016年,所以不推荐使用这个方法。

websocket相关

既然使用了外置tomcat,那么原先使用内置tomcat所配置的东西就可以删除了(当然,你不删也是可以的,但是为了代码规范最好还是删掉吧),我这里删除的东西如下:

  • pom.xml中的依赖

    org.springframework.boot   spring-boot-starter-websocket 
  • websocket的启动配置,代码如下

package com.lk.config;  import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.server.standard.ServerEndpointExporter;  /**  * websocket启动配置  */ @Configuration public class WebSocketConfig {     @Bean     public ServerEndpointExporter serverEndpointExporter() {         return new ServerEndpointExporter();     } }

设置打包名与路径

如果不设置名字和路径默认的打包名会附带带版本号,打包路径在当前项目的的target目录下,我们可以通过在pom.xml中的build标签下对其进行自定义,代码如下:

   

修改启动类

接下来,我们修改下SpringBoot的启动类,让其继承SpringBootServletInitializer,重写configure方法,告诉它我们使用的是外置Tomcat,代码如下:

@SpringBootApplication public class ChatSystemServerApplication extends SpringBootServletInitializer {  // 外置tomcat需要继承SpringBootServletInitializer,重写SpringApplicationBuilder  @Override  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {   return application.sources(ChatSystemServerApplication.class);  }  public static void main(String[] args) {   SpringApplication.run(ChatSystemServerApplication.class, args);  } }

至此,我们的项目配置部分就完成了,我们刷新下pom.xml文件,在idea的maven工具栏点clean,然后点package,就可以打一个war包在target目录下了。

tomcat配置

我的项目启用了https,使用外置tomcat后,在application.yml中配置的https就失效了,我们需要在tomcat中重新配一下。

开启https访问

我们打开tomcat的conf目录下的server.xml,找到name为Catalina的Service标签里的标签,修改port和redirectPort属性,代码如下:

随后,在上述标签的后面加上下述代码,让非80端口的访问跳转到443端口

配置SSL证书

把域名的证书文件server.jks和keystorePass.txt文件放在conf目录下,在server.xml中的name为Catalina的Service标签里添加下述代码。

                         

certificateKeystoreFile为你的证书文件,certificateKeystorePassword为你的证书文件密码,这个密码在keystorePass.txt文件里

配置路径访问

将war包放入tomcat的webapps目录下后,我们想反问需要带上项目名才可以,如果我们不想加项目名就能直接访问我们的项目,就需要另作配置了。

在server.xml文件中,找到标签,在其中添加Context标签,代码如下:

 Context path="" docBase="">

path: 留空则表示为域名根目录,docBase为你的war包所在目录

设置默认首页

由于我们修改了tomcat的默认访问页面,所有的根目录访问时不会走ROOT目录下的页面,此时就需要在项目里配置一个根目录的映射,让其跳转到我们指定的项目内的ststic中的页面,代码如下:

// 默认首页映射 @Controller public class DefaultController {     @RequestMapping("/")     public String Welcome(){         return "forward:index.html";     } }

关于SpringBoot在怎么外置Tomcat就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网页标题:SpringBoot在怎么外置Tomcat
URL地址:http://csdahua.cn/article/pdieci.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流