22-SpringBoot——核心-Tomcat配置
2017-08-23 07:40
405 查看
SpringBoot——核心-Tomcat配置
【博文目录>>>】
【项目源码>>>】
【Tomcat配置】
在SpringBoot中Tomcat 的所有属性都在org. springframework.boot.autoconfigure.web. ServerProperties配置类中做了定义,我们只需在application.properties 配置属性做配置即可。通用的Servlet 容器配置都以“server”作为前缀,而Tomcat 特有配置都以“ server.tomcat "作为前缀。下面是常用示例。配置Servlet 容器:
配置Tomcat:
详细配置可见:http://docs.spring.io/spring-boot/docs/1.5.6.RELEASE/reference/htmlsingle/#common-application-properties
代码配置Tomcat
如果需要使用代码方式配置Servlet 容器,可以注册实现EmbeddedServletContainerCustomizer 接口的Bean。如果需要直接配置Tomcat 、Jetty 、Undertow,可以直接定义TomcatEmbeddedServletContainerFactory、JettyEmbeddedServletContainerFactory 、UndertowEmbeddedServletContainerFactory。@Component public class CustomServletContainer implements EmbeddedServletContainerCustomizer { @Override public void customize(ConfigurableEmbeddedServletContainer container) { container.setPort(8888); container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404.html")); container.setSessionTimeout(10, TimeUnit.MINUTES); } }
替换Tomcat
替换为Jetty:在pom.xml 中,将spring-boot-starter-web 的依由spring-boot-start-tomcat 替换为spring-boot-start-jetty。如果是替换成Undertow,则改成spring-boot-start-undertow。SSL配置
SSL (Secure Sockets Layer,安企套接层)是为网络通信提供安全及数据完整性的一种安全协议, SSL 在网络传输层对网络连接进行加密。SSL 协议位于TCP/IP 协议与各种应用层协议之间,为数据通信提供安全支持。SSL 协议可分为两层: SSL 记录协议( SSL Record Protocol ),它建立在可靠的传输协议(如TCP )之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL 握手协议( SSL Handshake Protocol ),它建立在SSL 记录协议之上,用于实际数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等。而在基于B/S的 Web 应用中,是通过HTTPS 来实现SSL的。SpringBoot内嵌了Tomcat,使用SSL需要做如下操作。
生成证书
使用SSL 首先需要一个证书,这个证书既可以是自签名的,也可以是从SSL 证书授权。每一个JDK 或者JRE 都有一个工具 keytool ,它是一叫个证书管理工具,可以用来生成自签名的证书。在控制台输入如下命令:keytool -genkey -alias tomcat,然后按照提示操作。会在用户目录下生成.keystore文件SpringBoot配置SSL
server.port=8443 server.ssl.key-store=classpath:.keystore server.ssl.key-store-password=123456 server.ssl.key-store-type=JKS server.ssl.key-alias=tomcat
启动Spring Boot ,控制台输出效果
访问:https://localhost:8443
http 转向https
很多时候我们在地址栏输入的是http ,但是会自动转向到https,要实现这个功能,我们需配置TomcatEmbeddedServletContainerF actory,并且添加Tomcat的connector 来实现。@Bean public EmbeddedServletContainerFactory containerFactory () { TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory() { @Override protected void postProcessContext(Context context) { SecurityConstraint constraint = new SecurityConstraint(); constraint.setUserConstraint("CONFIDENTIAL"); SecurityCollection collection = new SecurityCollection(); collection.addPattern("/*"); constraint.addCollection(collection); context.addConstraint(constraint); } }; factory.addAdditionalTomcatConnectors(httpConnector()); return factory; } private Connector httpConnector() { System.out.println(Http11NioProtocol.class.getName()); Connector connector = new Connector(Http11NioProtocol.class.getName()); connector.setScheme("http"); connector.setPort(8080); connector.setSecure(false); connector.setRedirectPort(8443); return connector; }
运行结果
相关文章推荐
- Spring-boot中读取核心配置文件application和自定义properties配置文件的方式
- SpringBoot2.0配置Tomcat端口
- spring boot内嵌tomcat配置端口更改
- spring boot内嵌tomcat配置端口更改
- 知识点①:springboot使用外部 tomcat 运行配置
- SpringBoot14-springboot核心-外部配置,日志配置,Profile配置
- spring boot(7) 配置外部tomcat(1)
- SpringBoot初始教程之Tomcat、Jetty优化以及Https配置(九)
- IntelliJ IDEA 配置Gradle运行SpringBoot Web项目(tomcat容器)
- springboot自动配置的核心原理
- spring boot内嵌tomcat配置端口更改
- spring boot内嵌tomcat配置端口更改
- SpringBoot中Tomcat配置(学习SpringBoot实战)
- 19-SpringBoot——核心-Profile配置
- springboot中配置tomcat的access log
- Spring Boot核心原理-自动配置
- spring boot内嵌tomcat配置端口更改
- spring boot内嵌tomcat配置端口更改
- spring boot实战(第七篇)内嵌容器tomcat配置
- 【SpringBoot】核心依赖和自动配置