Spring Boot第七章-Spring Boot Web配置-Tomcat配置

Spring Boot第七章-Spring Boot Web配置-Tomcat配置

本章介绍tomcat的配置

1.配置tomcat

直接在application配置文件中配置即可,servlet容器配置以server为前缀,而tomcat的特有配置以server.tomcat为前缀,至于有哪些参数可以在实际工作中需要了再找。配置例子:

server.port=8443
#配置session过期时间,spring boot2带上时间单位
server.servlet.session.timeout=5s
server.servlet.context-path=/

server.tomcat.uri-encoding=UTF-8

2.代码配置

这个可以在后面的ssl配置中看到例子,其实不常用,配置文件配置就好。

3.替换tomcat

很简单,比如替换成Jetty,只需要加入spring-boot-starter-jetty的依赖,然后在web依赖中exclusions里把tomcat的依赖加进去,这样就不会引用tomcat的依赖了。

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>

4.SSL配置

SSL(Secure Sockets Layer,安全套接层 )是网络通信提供安全以及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密。SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支持。

在基于B/S的web应用中,是通过HTTPS实现SSL的。

(1)生成证书

使用SSL首先需要一个证书,这个证书既可以是自签名的,也可以从SSL证书中心获得。

在这里使用jdk自带的keytool工具生成证书

命令:keytool -genkey -alias tomcat -keyalg RSA -keystore ./.keystore

然后输入需要的信息

这样会在当前目录下生成一个.keystore文件,就是我们需要的证书文件

注意:-keyalg RSA 必须加上,这是密钥算法,不加上浏览器不认的

-keystore ./.keystore 指定证书文件位置以及证书文件名,不加会把证书文件生成在电脑用户目录里,比如:C:\Users\DELL

(2)Spring Boot配置SSL

将.keystore复制到项目的根目录

在application文件中配置SSL信息,跟生成的证书文件里的内容一致

server.port=8443
server.ssl.key-store=.keystore
server.ssl.key-store-password=123456
server.ssl.key-store-type=JKS
server.ssl.key-alias=tomcat

此时启动后可以看到启动日志:

Tomcat started on port(s): 8443 (https) with context path ''

(3)http转向https

书上是springboot1.5以下的配置,而我使用的是springboot2.0版本,有些代码有差异,具体见代码:

 @Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;
    }

    // 这是spring boot 1.5.X以下版本的
    /*@Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;
    }*/

访问8080端口会转到https端口,启动后可以看到:

Tomcat started on port(s): 8443 (https) 8080 (http) with context path ”

结果图:

Spring Boot第七章-Spring Boot Web配置-Tomcat配置

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100300.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Unity实战项目 ☀️| 教你如何在Unity中通过 代码获取 URL链接网页 的 标题 等各种信息✨

    Unity实战项目 ☀️| 教你如何在Unity中通过 代码获取 URL链接网页 的 标题 等各种信息✨直接放入脚本执行即可,可拿到URL目标网页的所有信息stringsa=””;WebRequestwr=WebRequest.Create(“https://www.baidu.com”);Streams=wr.GetResponse().GetResponseStream();StreamReadersr=newStreamReader(s,Encoding.Default);string

  • clipboard使用Require自动复制「建议收藏」

    clipboard使用Require自动复制「建议收藏」由于没有使用过require,在微擎人人商城中遇到了一个需要自动复制内容的功能。头疼了一番。varversion=+newDate();varmyconfig={path:’../addons/ewei_shopv2/static/js/’,alias:{‘jquery’:’dist/jquery/jquery-1.11.1.min’,’jquery.form’:’dist/jquery/jquery.form’,

  • httpclient4下载图片 java实现[通俗易懂]

    httpclient4下载图片 java实现[通俗易懂]有时候需要从网上抓取一下图片jpg、png等,也可以抓取zip等,这样就需要写程序才能达到想要的效果,下面是用httpclient4做一个工具类,非常的好用packagecom.wamei.tool;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileOutputStream;

  • madvrhdrmeasure 设置_ime3d安装教程

    madvrhdrmeasure 设置_ime3d安装教程目前网络上广泛传播的127.0.0.1版本madVR,在HDR转SDR这方面差强人意。为了追求更好的显示效果,可以下载madVR针对HDR的更新包,即madVRhdrMeasure。时至2021-10-27,madVRhdrMeasure最新版本为141。官网下载地址:http://madshi.net/madVRhdrMeasure141.ziphttp://madshi.net/madVRhdrMeasure141.zip……

  • java struts2 漏洞_Struts2漏洞利用「建议收藏」

    java struts2 漏洞_Struts2漏洞利用「建议收藏」Struts漏洞合集Struts-S2-013漏洞利用受影响版本Struts2.0.0-Struts2.3.14.1漏洞利用任意命令执行POC:${(#_memberAccess[“allowStaticMethodAccess”]=true,#a=@java.lang.Runtime@getRuntime().exec(‘id’).getInputStream(),#b=newjava…

  • vue 使用数组splice方法失效,且总是删除最后一项的解决办法。[通俗易懂]

    vue 使用数组splice方法失效,且总是删除最后一项的解决办法。[通俗易懂]今天在写项目的时候,遇到一个很简单的需求,下图,点击添加标签,左边出现一个可以输入的标签,点击删除按钮,就能删除当前标签,很简单的需求,我却搞了一个多小时(哎…新手愚笨啊)一看到这个我的思路就是点击添加标签,把新增的节点push到自己定义的数组里,然后渲染出来,点击删除按钮,用splice方法从数组中删除掉当前的节点(很简单,很明确的思路嘛,但是却事与愿违) <div…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号