spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / 。需要用到的就是端口、上下文路径的修改,在spring boot中其修改方法极其简单,实例如下:

server.port=8088server.context-path=/test

启动程序,日志如下:

2018-03-08 19:57:58.824  INFO 12046 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8088 (http)

可以看出其监听端口8088

自定义tomcat  

  在实际的项目中简单的配置tomcat端口肯定无法满足大家的需求,因此需要自定义tomcat配置信息来灵活的控制tomcat。下面的实例定义了tomcat的默认编码格式

package com.ysl.conf;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;import java.nio.charset.Charset;/*** tomcat配置*/@Configurationpublic classTomcatConfig {@BeanpublicEmbeddedServletContainerFactory servletContainer(){TomcatEmbeddedServletContainerFactory factory= newTomcatEmbeddedServletContainerFactory();factory.setUriEncoding(Charset.forName("UTF-8"));returnfactory;}
}

  构建EmbeddedServletContainerFactory的bean,获取到TomcatEmbeddedServletContainerFactory实例以后可以对tomcat进行设置,例如这里设置编码为UTF-8

SSL配置

生成证书

keytool -genkey -alias springboot -keyalg RSA -keystore /Users/ysl/software/ca1/keystore
设置密码123456

修改tomcat的server.xml,验证证书是否正确

<Connectorprotocol="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,访问https://localhost:8443

spring boot 内嵌tomcat ssl

配置资源文件:

server.port=8443server.ssl.enabled=trueserver.ssl.keyAlias=springboot
server.ssl.keyPassword=123456server.ssl.keyStore=/Users/ysl/software/ca1/keystore

多端口监听配置

前面启动ssl后只能走https,不能通过http进行访问,如果要监听多端口,可采用编码形式实现。

1.注销前面ssl配置,设置配置 server.port=8088

2.修改TomcatConfig.java

package com.ysl.conf;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;import java.io.File;
import java.nio.charset.Charset;/*** tomcat配置*/@Configurationpublic classTomcatConfig {@BeanpublicEmbeddedServletContainerFactory servletContainer(){TomcatEmbeddedServletContainerFactory factory= newTomcatEmbeddedServletContainerFactory();factory.setUriEncoding(Charset.forName("UTF-8"));factory.addAdditionalTomcatConnectors(createSslConnector());returnfactory;}privateConnector createSslConnector() {Connector connector= new Connector("org.apache.coyote.http11.Http11NioProtocol");Http11NioProtocol protocol=(Http11NioProtocol) connector.getProtocolHandler();try{File truststore= new File("/Users/ysl/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");returnconnector;}catch(Exception ex) {throw new IllegalStateException("cant access keystore: [" + "keystore" + "]", ex);}}
}

通过addAdditionalTomcatConnectors方法添加多个监听连接;此时可以通过http 8088端口,https 8443端口。

转载于:https://www.cnblogs.com/senlinyang/p/8526633.html

SpringBoot入门之内嵌Tomcat配置相关推荐

  1. 记一次定位解决SpringBoot中内嵌Tomcat的Bug问题

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 segmentfault.com/a/1190000038760707 推荐:h ...

  2. Springboot源码分析之内嵌tomcat源码分析

    Springboot源码是内嵌tomcat的,这个和完整的tomcat还是不同. 内嵌tomcat的源码在tomcat-embed-core等3个jar包里 展开tomcat-embed-core的c ...

  3. SpringBoot入门_搭建及配置环境(eclipse || Spring ToolS)

    r如果没有开发软件那就可以点击链接下载 Springboot开发工具: 1.eclipse配置springboot环境 help-Eclipsemarketplace--在find中查找springb ...

  4. 指定SpringBoot内嵌Tomcat的版本,修复(CVE-2021-42340)漏洞

    1.Tomcat漏洞 近日,Apache Tomcat 发布安全更新,更新了一处拒绝服务漏洞(CVE-2021-42340).攻击者可以通过该漏洞进行拒绝服务攻击.建议广大用户及时升级至最新版本. 1 ...

  5. SpringBoot内嵌Tomcat原理

    1.SpringBoot对SpringMVC的支持 对于一个 SpringBoot web 工程来说,一个主要的依赖标志就是有 spring-boot-starter-web 这个 starter , ...

  6. springboot内嵌tomcat调优

    在springboot-configuration-metadata.json文件下面,有很多属于springboot得喷子hi属性,以下为tomcat的默认配置属性: server.tomcat.a ...

  7. SpringBoot 入门04

    SpringBoot笔记 一.SpringBoot入门 1.SpringBoot简介 简化spring应用的框架 整个Spring技术栈的大整合 j2ee开发的一站式解决方案 2.微服务 2014 马 ...

  8. 深入分析SpringBoot源码如何内嵌Tomcat容器?

    作者:陌北有棵树,Java人,架构师社区合伙人! [一]总述 SpringBoot的诞生,极大的简化了Spring框架的使用过程,提升了开发效率,可以把它理解为一个整合包,使用了SpringBoot, ...

  9. SpringBoot入门和配置

    一.SpringBoot入门和微服务简介  1.SpringBoot入门 springboot:J2EE一站式解决方案 springcloud:分布式整体解决方案 2.微服务简介    微服务:架构风 ...

最新文章

  1. PHP退出浏览器程序执行定时任务,PHP执行定时任务
  2. linux 生成密码本,Linux下CentOS7使用OTPW实现双因子密码本登录
  3. 【Alljoyn】 Alljoyn学习笔记七 Alljoyn瘦客户端库介绍
  4. 22套精美的网页按钮图标设计推荐(包括PSD和AI文件)
  5. linux下删除目录及其子目录下某种类型文件
  6. psql屏幕输出全部结果_CommandBuffer实现Distort屏幕扭曲效果
  7. Android--我的Butterknife黄油刀怎么找不到控件了!!!
  8. 五大算法思想(二)贪心算法及常见例子
  9. grubbs准则 matlab_MATLAB-格拉布斯准则(MATLAB-Grubbs criterion)_0
  10. Windows 系统引导过程
  11. 并行执行linux命令,如何使用Parallel在Shell中并行执行命令
  12. Python入门:对Excel数据处理的学习笔记【第四章】字符串类型处理技术
  13. Windows系统中 Xmanager 6 企业版下载安装激活教程
  14. PLC控制柜从上到下布局是强电到弱电还是反过来?
  15. 微信小程序入门与实战之条件渲染、列表渲染与小程序事件
  16. 【报告分享】2021年百万经纪人调查报告-58安居客房产研究院 (附下载)
  17. 易语言利用WMI取磁盘CPU内存显卡信息源码
  18. Fiori学习笔记 - 服务跨域处理neo-app
  19. python怎么画名字_如何用Python画一只机器猫?
  20. 原创:仙途盛大内测 仙途升级功略 仙途新手卡免费领取 推广ID无限通用

热门文章

  1. Linux查看和剔除当前登录用户
  2. python中的函数修饰器
  3. Detection and Classification of Acoustic Scenes and Events(DCASE2013详细介绍)
  4. 话剧《白鹿原》:叫人乍舌,令人唏嘘,也让人捏把汗(图)
  5. 基于DM642的X264开源代码实现的研究
  6. 数码管和573锁存器的细节问题
  7. Scroll Dialog
  8. Java面向对象进阶
  9. mysql 互为主备 宕机 数据丢失_Devops部署-mysql主备多从搭建
  10. 参数调优为什么要采样_3年Java外包,内推阿里过关斩将,最后却倒在调优经验上! - Java架构师追风...