国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

spring boot實戰(zhàn)之內(nèi)嵌容器tomcat配置

2024-07-13 10:16:53
字體:
供稿:網(wǎng)友

本文介紹了spring boot實戰(zhàn)之內(nèi)嵌容器tomcat配置,分享給大家,具體如下:

默認容器

spring boot默認web程序啟用tomcat內(nèi)嵌容器tomcat,監(jiān)聽8080端口,servletPath默認為 / 通過需要用到的就是端口、上下文路徑的修改,在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 startup2015-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

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

以定義默認編碼為例

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 $ */@Configurationpublic class TomcatConfig {  @Bean  public EmbeddedServletContainerFactory servletContainer() {    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();    tomcat.setUriEncoding("UTF-8");    return tomcat;  }}

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

SSL配置

生成證書

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

tomcat中驗證證書是否正確

修改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=8443server.ssl.enabled=trueserver.ssl.keyAlias=springbootserver.ssl.keyPassword=123456server.ssl.keyStore=/Users/liaokailin/software/ca1/keystore
  1. server.ssl.enabled 啟動tomcat ssl配置
  2. server.ssl.keyAlias 別名
  3. server.ssl.keyPassword 密碼
  4. server.ssl.keyStore 位置

啟動 spring boot

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

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

前面啟動ssl后只能走https,不能通過http進行訪問,如果要監(jiān)聽多端口,可采用編碼形式實現(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 $ */@Configurationpublic class TomcatConfig {  @Bean  public 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方法添加多個監(jiān)聽連接;此時可以通過http 9090端口,https 8443端口。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 汾西县| 会昌县| 色达县| 紫云| 桂阳县| 五寨县| 沧州市| 连云港市| 济南市| 浦城县| 岫岩| 泾川县| 宁陵县| 庆安县| 滨海县| 古浪县| 鸡西市| 马边| 侯马市| 昆山市| 苍山县| 威远县| 临泽县| 惠州市| 八宿县| 噶尔县| 新泰市| 桐城市| 元氏县| 五常市| 瑞丽市| 东方市| 永城市| 定日县| 葫芦岛市| 旬邑县| 贞丰县| 平远县| 壤塘县| 景洪市| 海晏县|