日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring boot实战(第七篇)内嵌容器tomcat配置

發(fā)布時(shí)間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring boot实战(第七篇)内嵌容器tomcat配置 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

spring boot默認(rèn)web程序啟用tomcat內(nèi)嵌容器tomcat,監(jiān)聽8080端口,servletPath默認(rèn)為?/?通過需要用到的就是端口、上下文路徑的修改,在spring boot中其修改方法及其簡單;

在資源文件中配置:

?

server.port=9090 server.contextPath=/lkl

?

啟動spring boot

2015-10-04 00:06:55.768 INFO 609 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2015-10-04 00:06:55.844 INFO 609 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 2015-10-04 00:06:55.928 INFO 609 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 9090 (http) 2015-10-04 00:06:55.930 INFO 609 --- [ main] com.lkl.springboot.Application : Started Application in 3.906 seconds (JVM running for 4.184)

可以看出其監(jiān)聽端口9090,執(zhí)行?
http://localhost:9090/lkl/springboot/liaokailin?成功訪問

自定義tomcat

在實(shí)際的項(xiàng)目中簡單的配置tomcat端口肯定無法滿足大家的需求,因此需要自定義tomcat配置信息來靈活的控制tomcat。

以定義默認(rèn)編碼為例

package com.lkl.springboot.container.tomcat;import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** tomcat 配置* @author liaokailin* @version $Id: TomcatConfig.java, v 0.1 2015年10月4日 上午12:11:47 liaokailin Exp $*/ @Configuration public class TomcatConfig {@Beanpublic EmbeddedServletContainerFactory servletContainer() {TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();tomcat.setUriEncoding("UTF-8");return tomcat;}}

?

構(gòu)建EmbeddedServletContainerFactory的bean,獲取到TomcatEmbeddedServletContainerFactory實(shí)例以后可以對tomcat進(jìn)行設(shè)置,例如這里設(shè)置編碼為UTF-8

SSL配置

生成證書

keytool -genkey -alias springboot -keyalg RSA -keystore /Users/liaokailin/software/ca1/keystore 設(shè)置密碼123456

tomcat中驗(yàn)證證書是否正確

修改tomcat/conf/server.xml文件

<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"port="8443" maxThreads="200"scheme="https" secure="true" SSLEnabled="true"keystoreFile="/Users/liaokailin/software/ca1/keystore" keystorePass="123456"clientAuth="false" sslProtocol="TLS"/>

啟動tomcat ,訪問?http://localhost:8443

spring boot 內(nèi)嵌tomcat ssl

配置資源文件

server.port=8443 server.ssl.enabled=true server.ssl.keyAlias=springboot server.ssl.keyPassword=123456 server.ssl.keyStore=/Users/liaokailin/software/ca1/keystore
  • server.ssl.enabled?啟動tomcat ssl配置
  • server.ssl.keyAlias?別名
  • server.ssl.keyPassword?密碼
  • server.ssl.keyStore?位置

啟動?spring boot

訪問https://localhost:8443/springboot/helloworld

多端口監(jiān)聽配置

前面啟動ssl后只能走h(yuǎn)ttps,不能通過http進(jìn)行訪問,如果要監(jiān)聽多端口,可采用編碼形式實(shí)現(xiàn)。

1.注銷前面ssl配置,設(shè)置配置?server.port=9090

2.修改TomcatConfig.java

?

package com.lkl.springboot.container.tomcat;import java.io.File;import org.apache.catalina.connector.Connector; import org.apache.coyote.http11.Http11NioProtocol; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** tomcat 配置* @author liaokailin* @version $Id: TomcatConfig.java, v 0.1 2015年10月4日 上午12:11:47 liaokailin Exp $*/ @Configuration public class TomcatConfig {@Beanpublic EmbeddedServletContainerFactory servletContainer() {TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();tomcat.setUriEncoding("UTF-8");tomcat.addAdditionalTomcatConnectors(createSslConnector());return tomcat;}private Connector createSslConnector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();try {File truststore = new File("/Users/liaokailin/software/ca1/keystore");connector.setScheme("https");protocol.setSSLEnabled(true);connector.setSecure(true);connector.setPort(8443);protocol.setKeystoreFile(truststore.getAbsolutePath());protocol.setKeystorePass("123456");protocol.setKeyAlias("springboot");return connector;} catch (Exception ex) {throw new IllegalStateException("cant access keystore: [" + "keystore" + "] ", ex);}} }

?

?

?

?

?

通過addAdditionalTomcatConnectors方法添加多個(gè)監(jiān)聽連接;此時(shí)可以通過http 9090端口,https 8443端口。

總結(jié)

以上是生活随笔為你收集整理的spring boot实战(第七篇)内嵌容器tomcat配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。