SpringBoot入门之内嵌Tomcat配置
spring boot默认web程序启用tomcat内嵌容器tomcat,监听8080端口,servletPath默认为 / 。需要用到的就是端口、上下文路径的修改,在spring boot中其修改方法极其简单,实例如下:
server.port=
server.context-path=/test
启动程序,日志如下:
-- ::58.824 INFO --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): (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 { @Bean
public 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,验证证书是否正确
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="" maxThreads=""
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="/Users/liaokailin/software/ca1/keystore" keystorePass=""
clientAuth="false" sslProtocol="TLS"/>
启动tomcat,访问https://localhost:8443
spring boot 内嵌tomcat ssl
配置资源文件:
server.port=
server.ssl.enabled=true
server.ssl.keyAlias=springboot
server.ssl.keyPassword=
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 { @Bean
public 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();
protocol.setKeystoreFile(truststore.getAbsolutePath());
protocol.setKeystorePass("");
protocol.setKeyAlias("springboot");
return connector;
} catch (Exception ex) {
throw new IllegalStateException("cant access keystore: [" + "keystore" + "] ", ex);
}
}
}
通过addAdditionalTomcatConnectors方法添加多个监听连接;此时可以通过http 8088端口,https 8443端口。
SpringBoot入门之内嵌Tomcat配置的更多相关文章
- springboot去除内嵌tomcat和打包在tomcat中运行需要做的步骤
去除内嵌tomcat和添加jsp依赖 去除内嵌tomcat 在springboot启动依赖中去除内嵌tomcat <dependency> <groupId>org.sprin ...
- SpringBoot入门之基于Druid配置Mybatis多数据源
上一篇了解了Druid进行配置连接池的监控和慢sql处理,这篇了解下使用基于基于Druid配置Mybatis多数据源.SpringBoot默认配置数据库连接信息时只需设置url等属性信息就可以了,Sp ...
- springboot深入学习(四)-----tomcat配置、websocket
一.更改servlet服务器 springboot中默认可以集成多种servlet容器,当引入如下依赖时: springboot默认以tomcat作为项目的servlet容器,如果用户想要替换tomc ...
- SpringBoot 入门:项目属性配置
开发一个SpringBoot 项目,首当其冲,必然是配置项目 一.项目属性配置 1. SpringBoot自带了Tomcat服务器,通过使用项目配置文件来修改项目的配置,如图配置了部署在80端口,目录 ...
- springboot之内嵌tomcat修改端口号
第一种: 在配置文件中直接修改 server.port=8089 第二种: 直接定义 TomcatEmbeddedServletContainerFactory,注册bean: @Configurat ...
- SpringBoot Boot内嵌Tomcat
Spring Boot: SpringBoot-start-web 里面依赖的环境中 如果是外部的Tomcat 容器,可以通过修改config进行配置 内嵌的呢? 如何定制和修改Servlet容器的相 ...
- SpringBoot入门-多环境文件配置(二)
pom.xml <name>springboot-application</name> <description>A project for Spring Boot ...
- springboot入门的一点基础
什么是SpringBoot java问世20年由于,发展到现在从技术角度来说已经很成熟,开发过程中我们总是在想如何去提高团队开发规范性.减少重复配置.避免低效开发.部署发布时流程的复杂度以及第三方技术 ...
- SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)
SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...
随机推荐
- 2017-2018-1 20155312《信息安全技术》实验二——Windows口令破解实验报告
2017-2018-1 20155312<信息安全技术>实验二--Windows口令破解实验报告 实验目的 了解Windows口令破解原理 对信息安全有直观感性认识 能够运用工具实现口令破 ...
- vue-cli引入jquery方法
方法一: 一,在package.json里加入, dependencies:{ ”jquery“:”^2.3.4“ } 二,在webpack.base.conf.js里加入 const webpack ...
- IntelliJ IDEA 2017版 Spring5最基本的bean例子创建
一.简述 SpringBoot是基于spring框架之上的快速开发的框架.Spring4核心就是容器,容器提供了对bean的装配和管理. spring依赖加载: ...
- Curry化函数
<script> function fn(){ var i, rult = 0, len = arguments.length; for (i=0;i<len ;i++ ) { ru ...
- [转]MySQL源码:Range和Ref优化的成本评估
MySQL源码:Range和Ref优化的成本评估 原文链接:http://www.orczhou.com/index.php/2012/12/mysql-source-code-optimizer-r ...
- CImageList
创建 有五个重载函数,分别如下: BOOL Create(int cx, int cy, UINT nFlags, int nInitial, int nGrow); BOOL Create(UINT ...
- linux搭建简易版本的FastDFS服务器
开发环境:centos7环境 搭建FastDFS集群搭建非常复杂,对于初期学习FastDFS来说,搭建个单机版的作为入门更为实际一些. 首先感谢“在京奋斗者“”博主的详细搭建过程,附上博客地址http ...
- 1129 Recommendation System
1129 Recommendation System (25 分) Recommendation system predicts the preference that a user would gi ...
- python coroutine的学习跟总结[转]
简介 因为最近一段时间需要研究一些openstack相关的东西,在阅读一些相关代码的时候碰到很多python特定的一些特性,比如generator, coroutine以及一些相关的类库,比如even ...
- ADALINE小demo
线性逼近 clear;clc;close all x = [1,0.5; 1.5,1.1; 3,3; -1.2,-1]; y = x(:,2); x = [ones(size(x,1),1),x(:, ...