SprinBoot基础配置

版权声明:不正确的地方还恳请指出,真心感谢! https://blog.csdn.net/m0_38032942/article/details/88084971

一、Tomcat配置

主要就是下图这些配置,完整配置参考Appenddix A.Common application properties 一节:
在这里插入图片描述

二、HTTPS配置

由于HTTPS的安全性,开发中经常使用到的就是HTTPS,像微信公众号小程序的开发都需要HTTPS来完成,对于个人了开发者来说一个HTTPS证书还是很昂贵的,国内一些云服务器厂商提供免费的HTTPS证书,一个账号可以申请数个。不过在JDK中提供了一个Java数字证书管理工具keytool,在jdk/bin目录下,通过这个工具可以生成一个数字证书:

D:\Program Files\Java\jdk1.8.0_201\bin>keytool.exe -genkey -alias tomcathttps -keyalg RSA -keysize 2048 -keystore sang.p
12 -validity 365

命令解释:
-genkey 表示要创建一个新的秘钥
-alias 表示keystore的别名
-keyalg 表示使用的是加密算法RSA,一种非对称加密算法
-keysize 表示秘钥的长度
-keystore 表示秘钥的存放位置
-validity 表示秘钥的有效期,单位是:天
在这里插入图片描述
把密匙文件放在项目根目录下,然后在配置即可,分别是秘钥的名称,别名和生成秘钥时的密码,如下图:
在这里插入图片描述
此时访问http://localhost:8080/hello:
http://localhost:8080/hello
由于证书是自己生成的,不被浏览器认可,被认为是不安全连接,此时继续前往即可!
在这里插入图片描述
那么使用传统的HTTP协议访问不到的时候应该怎么办呢?是因为SpringBoot不支持同时在配置中启动HTTP和HTTPS,可以将HTTP重定向到HTTPS请求:

@Configuration
public class TomcatConfig {
    @Bean
    TomcatServletWebServerFactory tomcatServletWebServerFactory(){
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory(){
            @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(createTomcatConnector());
        return factory;
    }

    private Connector createTomcatConnector(){
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setPort(8080);
        connector.setSecure(false);
        connector.setRedirectPort(8081);
        return connector;
    }
}

三、Jetty配置与Undertow

除了Timcat意外亦可以在SpringBoot配置Jetty,配置方式:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.0.4.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <!-- 去除默认的Tomcat -->
        <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>
</dependencies>

Undertow是一个红帽公司开源的Java服务器,性能还是不错的,在SpringBoot中也得到了很好的支持,配置方式与Jetty一致:


四、Properties配置

猜你喜欢

转载自blog.csdn.net/m0_38032942/article/details/88084971