spring boot实战(第七篇)内嵌容器tomcat配置
来源:互联网 发布:成对比较矩阵word 编辑:程序博客网 时间:2024/05/01 22:46
spring boot实战(第七篇)内嵌容器tomcat配置
默认容器
spring boot默认web程序启用tomcat内嵌容器tomcat,监听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)
可以看出其监听端口9090,执行
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; }}
构建EmbeddedServletContainerFactory
的bean,获取到TomcatEmbeddedServletContainerFactory
实例以后可以对tomcat进行设置,例如这里设置编码为UTF-8
SSL配置
生成证书
keytool -genkey -alias springboot -keyalg RSA -keystore /Users/liaokailin/software/ca1/keystore设置密码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 内嵌tomcat ssl
配置资源文件
server.port=8443server.ssl.enabled=trueserver.ssl.keyAlias=springbootserver.ssl.keyPassword=123456server.ssl.keyStore=/Users/liaokailin/software/ca1/keystore
server.ssl.enabled
启动tomcat ssl配置server.ssl.keyAlias
别名server.ssl.keyPassword
密码server.ssl.keyStore
位置
启动 spring boot
访问https://localhost:8443/springboot/helloworld
多端口监听配置
前面启动ssl后只能走https,不能通过http进行访问,如果要监听多端口,可采用编码形式实现。
1.注销前面ssl配置,设置配置 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
方法添加多个监听连接;此时可以通过http 9090端口,https 8443端口。
转载请注明
http://blog.csdn.net/liaokailin/article/details/48948093
欢迎关注,您的肯定是对我最大的支持
- spring boot实战(第七篇)内嵌容器tomcat配置
- spring boot实战(第七篇)内嵌容器tomcat配置
- spring boot内嵌tomcat配置端口更改
- Spring Boot应用服务部署——使用内嵌的tomcat容器
- spring boot 启动web,内嵌tomcat
- spring boot tomcat配置
- Spring Boot Tomcat配置
- Spring Boot Tomcat配置
- spring boot实战(第四篇)分散配置
- spring boot实战(第四篇)分散配置
- 选择Spring Boot项目的内嵌容器
- 选择Spring Boot项目的内嵌容器
- Spring-boot 配置Jetty 容器
- Spring Boot自动配置实战
- Spring Boot 内嵌Tomcat的端口号的修改
- spring boot jar包tomcat内嵌方式启动
- spring boot实战(第十五篇)嵌入tomcat源码分析
- spring boot实战(第十五篇)嵌入tomcat源码分析
- 6.Python补充_Python之道
- Crush The Crash--dump和异常
- 2015年“10.1”假期游玩——杭州(3天2夜),上海(2天1夜)
- linux下ftp上传
- Mysql数据库存储引擎
- spring boot实战(第七篇)内嵌容器tomcat配置
- 使用 Xmanager 远程连接到 CentOS 7
- iOS异常处理机制
- Two Sum
- javascript 深度克隆(深度拷贝一个对象) prototype __ptoto__ consstructor
- 《Metasploit渗透测试魔鬼训练营》 之 工具整理
- 配置C++链接数据库(MacOS-Xcode)
- UIApplication,AppDelegate,程序启动流程
- Codeforces Round #324 (Div. 2) A. Olesya and Rodion