SpringBoot入门之内嵌Tomcat配置

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

server.port=8088
server.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配置*/
@Configuration
public class TomcatConfig {@Beanpublic EmbeddedServletContainerFactory servletContainer(){TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();factory.setUriEncoding(Charset.forName("UTF-8"));return factory;}
}

  构建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=8443
server.ssl.enabled=true
server.ssl.keyAlias=springboot
server.ssl.keyPassword=123456
server.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配置*/
@Configuration
public class TomcatConfig {@Beanpublic EmbeddedServletContainerFactory servletContainer(){TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();factory.setUriEncoding(Charset.forName("UTF-8"));factory.addAdditionalTomcatConnectors(createSslConnector());return factory;}private Connector 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");return connector;} catch (Exception ex) {throw new IllegalStateException("cant access keystore: [" + "keystore" + "]  ", ex);}}
}

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

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第二十二章:动画(六)

复合动画您可以混合等待和未等待的调用来创建复合动画。 例如&#xff0c;假设您希望按钮在大小扩展的同时旋转360度然后收缩。ViewExtensions类定义一个方法名称ScaleTo&#xff0c;它为Scale属性设置动画&#xff0c;就像RotateTo为Rotate属性设置动画一样。 Button大小的扩展…

C#操作Excel总结

0. 导入命名空间&#xff1a; 1234using Microsoft.Office.Core;using Microsoft.Office.Interop.Excel;using System.IO;using System.Reflection;1. 如何打开已有excel文档&#xff0c;或者创建一个新的excel文档 123Application app new Application();Workbooks wbks app…

Ubuntu16.04用源安装Nginx+PHP5.6+MySQL5.6

安装Nginx 1、首先添加nginx_signing.key(必须&#xff0c;否则出错) $ wget http://nginx.org/keys/nginx_signing.key$ sudo apt-key add nginx_signing.key 2、添加]Nginx](http://nginx.org/)官方提供的源 $ echo "deb http://nginx.org/packages/ubuntu/ trusty ngin…

leetcode -39组合总数

搜就完事了&#xff0c;没想着优化。唉~太菜&#xff0c;给一个位置标记位置&#xff0c;然后通过该位置向该位置及该位置以下寻找&#xff0c;这样不存在什么重复回去查找问题。 如果总结大于目标值&#xff0c;回溯一下&#xff0c;如果不大于继续。 class Solution { public…

避免某个子窗体重复运行的方法(showdialog、show)

在C#中窗口的显示有两种方式&#xff1a;模态显示&#xff08;showdialog&#xff09;和非模态显示&#xff08;show&#xff09;。 二者最常见的区别是&#xff1a;模态显示后&#xff0c;弹出窗口阻止调用窗口的所有消息响应。只有在弹出窗口结束后调用窗口才能继续。在模态窗…

ubantu之Git使用

本文讲述在Ubuntu 14.04 x64环境下&#xff0c;如何安装Git&#xff0c;配置连接GitHub&#xff0c;并且上传本地代码到github。 一. 注册Git账户以及创建仓库 要想使用github第一步当然是注册github账号了。之后就可以创建仓库了&#xff08;免费用户只能建公共仓库&#xff0…

Java中基础数据类型分类

Java中的四类八种基本数据类型 第一类&#xff1a;整数类型 byte short int long &#xff08;int是整形&#xff0c;也属于整数类型&#xff09; 第二类&#xff1a;浮点型 float double 第三类&#xff1a;逻辑型 boolean(它只有两个值可取true false) 第四类&#xff1…

C#如何打包EXE程序生成setup安装文件

C#如何打包EXE程序生成setup安装文件作为研发人员&#xff0c;在本机上开发的winform wpf或者控制台程序需要发给其他人测试时候&#xff0c;一般需要对其进行打包生成setup安装文件&#xff0c;今天第一次&#xff0c;搜了下资料&#xff0c;记录如下&#xff1a;注&#xff1…

PHP正则表达式

php正则表达示的定界符 PHP的正则表达示定界符的规定如下&#xff1a; 定界符&#xff0c;不能用a-z A-Z 0-9 其他的都可以用。必须成对出现&#xff0c;有开始就有结束。 我们来例几个例子&#xff1a; /中间写正则/ 正确%中间写正则% 正确^中间写正则^ 正确中间写正则 正确(…

最具戏剧性的分析诊断案例——十分钟锁定数据库性能“元凶”

昨天&#xff0c;正好有点空时间想看看书&#xff0c;结果&#xff0c;刚打开书&#xff0c;没看几个字儿&#xff0c;接到用户电话说&#xff1a;一个库有问题&#xff0c;希望能帮忙看下。因为我知道他们那边也有自己的专职DBA&#xff0c;于是问&#xff1a;没让人给看看吗&…

Python黑科技:在家远程遥控公司电脑,python+微信一键连接!

有时候需要远程家里的台式机使用&#xff0c;因为我平时都是用 MAC 多&#xff0c;但是远程唤醒只能针对局域网&#xff0c;比较麻烦&#xff0c;于是我想用微信实现远程唤醒机器。 *注意&#xff1a;全文代码可左右滑动查看 准备工作 本程序主要是实现远程管理 Windows10操作系…

c#通过app.manifest使程序以管理员身份运行

通常我们使用c#编写的程序不会弹出这个提示&#xff0c;也就无法以管理员身分运行。微软的操作系统使用微软的产品方法当然是有的&#xff0c;通过app.manifest配置可以使程序打开的时候&#xff0c;弹出UAC提示需要得到允许才可以继续&#xff0c;这样就获得了管理员的权限来执…

Oracle 作业

Oracle 作业 dbms_job与 dbms_scheduler 用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务。 一. dbms_job 1.1. 创建 variable jobno number; begin dbms_job.submit(:jobno,proce_t;, sysdate, sysdate1/24/60); commit; end; / 1.2. 参数 Job 输出…

企业级 Spring Boot 教程 (十四)用restTemplate消费服务

构架工程 创建一个springboot工程&#xff0c;去消费RESTFUL的服务。这个服务是 http: ///gturnquist-quoters.cfapps.io/api/random &#xff0c;它会随机返回Json字符串。 Spring Cloud大型企业分布式微服务云架构源码请加一七九一七四三三八零 在Spring项目中&#xff0c;它…

MOS管基本认识(快速入门)

1. 三个极的判定G极(gate)—栅极&#xff0c;不用说比较好认 S极(source)—源极&#xff0c;不论是P沟道还是N沟道&#xff0c;两根线相交的就是 D极(drain)—漏极&#xff0c;不论是P沟道还是N沟道&#xff0c;是单独引线的那边2. N沟道与P沟道判别箭头指向G极的是N沟道 箭头背…

基础构建模块

5 基础构建模块 Java平台类库包含了丰富的并发基础构建模块&#xff0c;例如线程安全的容器类以及各种用于协调多个相互协作的线程控制流的同步工具类(Synchronizer)。本章将介绍其中一些最有用的并发构建模块。 5.1同步容器类 同步容器类包括Vector和Hashtable&#xff0c;二者…

TCP定时器

1. TCP中7种定时器 TCP中有7中定时器 &#xff08;1&#xff09;建立连接定时器(connection-establishment timer) &#xff08;2&#xff09;重传定时器(retransmission timer) &#xff08;3&#xff09;延迟应答定时器(delayed ACK timer) &#xff08;4&#xff09;坚持定时…

sql优化大全

1. 优化SQL步骤 1. 通过 show status和应用特点了解各种 SQL的执行频率 通过 SHOW STATUS 可以提供服务器状态信息&#xff0c;也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果。 如显示当前s…

Halcon实现边缘提取

一、边缘提取 1、设置ROI兴趣区域 2、快速二值化&#xff0c;并连接相邻区域。 这样做的目的是进一步减少目标区域&#xff0c;通过二值化将目标区域大概轮廓提取出来 3、提取最接近目标区域的轮廓 常用函数有boundary&#xff0c;gen_contour_region_xld 4、根据自己的需求提取…

软件工程网络15个人阅读作业1 201521123038 游舒婷

软件工程网络15个人阅读作业1 201521123038 游舒婷 1.博客园地址 sakurai3104 2.码云地址 sakurai3104 3.阅读与思考 &#xff08;1&#xff09;回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络工程专业的决定的&#xff1f; 填报志愿的时候&#xff0c;大…