SpringBoot入门之内嵌Tomcat配置
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配置相关推荐
- 记一次定位解决SpringBoot中内嵌Tomcat的Bug问题
你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 segmentfault.com/a/1190000038760707 推荐:h ...
- Springboot源码分析之内嵌tomcat源码分析
Springboot源码是内嵌tomcat的,这个和完整的tomcat还是不同. 内嵌tomcat的源码在tomcat-embed-core等3个jar包里 展开tomcat-embed-core的c ...
- SpringBoot入门_搭建及配置环境(eclipse || Spring ToolS)
r如果没有开发软件那就可以点击链接下载 Springboot开发工具: 1.eclipse配置springboot环境 help-Eclipsemarketplace--在find中查找springb ...
- 指定SpringBoot内嵌Tomcat的版本,修复(CVE-2021-42340)漏洞
1.Tomcat漏洞 近日,Apache Tomcat 发布安全更新,更新了一处拒绝服务漏洞(CVE-2021-42340).攻击者可以通过该漏洞进行拒绝服务攻击.建议广大用户及时升级至最新版本. 1 ...
- SpringBoot内嵌Tomcat原理
1.SpringBoot对SpringMVC的支持 对于一个 SpringBoot web 工程来说,一个主要的依赖标志就是有 spring-boot-starter-web 这个 starter , ...
- springboot内嵌tomcat调优
在springboot-configuration-metadata.json文件下面,有很多属于springboot得喷子hi属性,以下为tomcat的默认配置属性: server.tomcat.a ...
- SpringBoot 入门04
SpringBoot笔记 一.SpringBoot入门 1.SpringBoot简介 简化spring应用的框架 整个Spring技术栈的大整合 j2ee开发的一站式解决方案 2.微服务 2014 马 ...
- 深入分析SpringBoot源码如何内嵌Tomcat容器?
作者:陌北有棵树,Java人,架构师社区合伙人! [一]总述 SpringBoot的诞生,极大的简化了Spring框架的使用过程,提升了开发效率,可以把它理解为一个整合包,使用了SpringBoot, ...
- SpringBoot入门和配置
一.SpringBoot入门和微服务简介 1.SpringBoot入门 springboot:J2EE一站式解决方案 springcloud:分布式整体解决方案 2.微服务简介 微服务:架构风 ...
最新文章
- PHP退出浏览器程序执行定时任务,PHP执行定时任务
- linux 生成密码本,Linux下CentOS7使用OTPW实现双因子密码本登录
- 【Alljoyn】 Alljoyn学习笔记七 Alljoyn瘦客户端库介绍
- 22套精美的网页按钮图标设计推荐(包括PSD和AI文件)
- linux下删除目录及其子目录下某种类型文件
- psql屏幕输出全部结果_CommandBuffer实现Distort屏幕扭曲效果
- Android--我的Butterknife黄油刀怎么找不到控件了!!!
- 五大算法思想(二)贪心算法及常见例子
- grubbs准则 matlab_MATLAB-格拉布斯准则(MATLAB-Grubbs criterion)_0
- Windows 系统引导过程
- 并行执行linux命令,如何使用Parallel在Shell中并行执行命令
- Python入门:对Excel数据处理的学习笔记【第四章】字符串类型处理技术
- Windows系统中 Xmanager 6 企业版下载安装激活教程
- PLC控制柜从上到下布局是强电到弱电还是反过来?
- 微信小程序入门与实战之条件渲染、列表渲染与小程序事件
- 【报告分享】2021年百万经纪人调查报告-58安居客房产研究院 (附下载)
- 易语言利用WMI取磁盘CPU内存显卡信息源码
- Fiori学习笔记 - 服务跨域处理neo-app
- python怎么画名字_如何用Python画一只机器猫?
- 原创:仙途盛大内测 仙途升级功略 仙途新手卡免费领取 推广ID无限通用
热门文章
- Linux查看和剔除当前登录用户
- python中的函数修饰器
- Detection and Classification of Acoustic Scenes and Events(DCASE2013详细介绍)
- 话剧《白鹿原》:叫人乍舌,令人唏嘘,也让人捏把汗(图)
- 基于DM642的X264开源代码实现的研究
- 数码管和573锁存器的细节问题
- Scroll Dialog
- Java面向对象进阶
- mysql 互为主备 宕机 数据丢失_Devops部署-mysql主备多从搭建
- 参数调优为什么要采样_3年Java外包,内推阿里过关斩将,最后却倒在调优经验上! - Java架构师追风...