SpringBoot实战 | 配置文件详解

栏目: Java · 发布时间: 6年前

内容简介:微信公众号:一个优秀的废人如题,今天解析下 SpringBoot 的配置文件。首先构建 SpringBoot 项目,不会的看这篇旧文

微信公众号:一个优秀的废人

前言

如题,今天解析下 SpringBoot 的配置文件。

自定义属性加载

首先构建 SpringBoot 项目,不会的看这篇旧文 使用 IDEA 构建 Spring Boot 工程

首先在项目根目录下加入以下自定义属性:

# 防止读取乱码
spring.http.encoding.charset=UTF-8
# 项目启动端口
server.port=9999
# 自定义配置
com.nasus.author.name=一个优秀的废人
com.nasus.article.title=SpringBoot配置文件详解

使用 @value 注解读取配置文件属性:

package com.nasus.bean;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * Project Name:springboot_properties_demo <br/>
 * Package Name:com.nasus.properties <br/>
 * Date:2019/1/28 20:59 <br/>
 * <b>Description:</b> TODO: 描述该类的作用 <br/>
 * @author <a href="turodog@foxmail.com">nasus</a><br/>
 */

@Data
@Component
public class PropertiesBean {

    @Value("${com.nasus.author.name}")
    private String name;

    @Value("${com.nasus.article.title}")
    private String title;

    @Value("${com.nasus.doing}")
    private String desc;

}

之后新建 controller 测试自定义属性加载,代码如下:

package com.nasus.controller;

import com.nasus.bean.PropertiesBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Project Name:springboot_properties_demo <br/>
 * Package Name:com.nasus.controller <br/>
 * Date:2019/1/28 21:41 <br/>
 * <b>Description:</b> TODO:  测试自定义属性加载<br/>
 *
 * @author <a href="turodog@foxmail.com">nasus</a><br/>
 */
@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private PropertiesBean propertiesBean;

    @GetMapping("/getInfo")
    public PropertiesBean getInfo(){
        return propertiesBean;
    }
}

访问 http://localhost :8080/test/getInfo 查看加载结果:

SpringBoot实战 | 配置文件详解

可以看到,加入 @value 注解之后,配置文件的属性都被读取出来了。以前,或许我们还需要专门写一个读取配置文件的 工具 类才能把属性读取出来,现在有了 Spring ,我们可以直接使用 @value 就能读取了,简直不能太方便。本例源码在这: github 地址

参数间的引用

配置文件代码如下:

# 防止读取乱码
spring.http.encoding.charset=UTF-8
# 项目启动端口
server.port=9999
# 自定义配置
com.nasus.author.name=一个优秀的废人
com.nasus.article.title=SpringBoot配置文件详解

com.nasus.doing=${com.nasus.author.name}写文章《${com.nasus.article.title}》

可以看到最后一个参数配置使用了前两个的参数配置,测试结果如下:

SpringBoot实战 | 配置文件详解

使用随机数

有时项目需求,可能我们需要配置一些随机数,比如说为了安全而随机配置的服务器端口,以及登录密钥。这时我们就可以用 SpringBoot 的 random 属性来配置随机数,比如:

# 随机字符串
com.nasus.article.value=${random.value}
# 随机int
com.nasus.article.number=${random.int}
# 随机long
com.nasus.article.bignumber=${random.long}
# 10以内的随机数
com.nasus.article.test1=${random.int(10)}
# 10-20的随机数
com.nasus.article.test2=${random.int[10,20]}

使用多配置文件

很多时候我们开发项目都需要很多套环境,比如有测试环境,开发环境以及生产环境。不同的环境就需要使用不同的配置文件,为此我们可以根据这 3 个环境分别新建 以下 3 个配置文件。

application-dev.properties:开发环境

application-test.properties:测试环境

application-prod.properties:生产环境

项目中默认的配置文件是 application.properties 。这时我们可以根据自己的环境去使用相应的配置文件,比如说,项目各个环境的端口必须不一样。那我们可以这样配置:

application-dev.properties:开发环境

server.port=6666

application-test.properties:测试环境

server.port=7777

application-prod.properties:生产环境

server.port=8888

假如,现在我打包上线,那就必须用生产环境的配置文件了,这时我们可以在 默认的配置文件 application.properties 中加入以下配置即可

spring.profiles.active=prod

配置数据库

SpringBoot 的配置文件有两种格式,一种是 .properties 格式(以上栗子都是用的这种)还有一种用的是 .yaml 格式。以下是用 yaml 方式配置。这两种格式并无好坏之分,纯看个人使用习惯。我就比较喜欢 yaml 格式,因为看起来比较简洁。

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=true
    username: 你的数据库名称
    password: 你的数据库密码

  jpa:
    hibernate:
      ddl-auto: update   #ddl-auto:设为update 表示每次都重新建表
    show-sql: true

注意事项

  1. 使用 yaml 格式需要注意一点就是 键值对冒号后面,必须空一格
  2. application.properties 配置中文值的时候,读取出来的属性值会出现乱码问题。但是 application.yml 不会出现乱码问题。原因是,Spring Boot 是以 iso-8859 的编码方式读取 application.properties 配置文件。

解决第二点,只需加入 spring.http.encoding.charset=UTF-8 配置即可。

后语

以上就是我对 SpringBoot 配置文件的理解与使用,当然以上只是介绍了一下 SpringBoot 配置文件的几个用法,它的用法还有非常多,想要深入使用还是需要各位多多深入实践。最后,对 PythonJava 感兴趣请长按二维码关注一波,我会努力带给你们价值,如果觉得本文对你哪怕有一丁点帮助,请帮忙点好看,让更多人知道。

另外,关注之后在发送 1024 可领取免费学习资料。资料内容详情请看这篇旧文: Python、C++、Java、 LinuxGo 、前端、算法资料分享

SpringBoot实战 | 配置文件详解


以上所述就是小编给大家介绍的《SpringBoot实战 | 配置文件详解》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learn Python the Hard Way

Learn Python the Hard Way

Zed Shaw / Example Product Manufacturer / 2011

This is a very beginner book for people who want to learn to code. If you can already code then the book will probably drive you insane. It's intended for people who have no coding chops to build up t......一起来看看 《Learn Python the Hard Way》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具