JavaEE >> Spring Boot(2)

本文详细介绍了SpringBoot项目中配置文件的作用,包括数据库连接信息、端口设置等,并比较了.properties和.yml格式的优劣,以及如何使用@Value注解读取配置文件内容。
摘要由CSDN通过智能技术生成

Spring Boot 配置文件

前面的文章已经介绍了 Spring Boot 项目的创建,上文,本文介绍 Spring Boot 的简单进阶使用。

配置文件的作用

项目中的所有重要数据都是在配置文件中配置的,例如:

  1. 数据库的连接信息(包括数据库的密码和用户名以及一些参数的设置);
  2. 项目的启动端口,比如想要以 8081 作为端口运行项目;
  3. 一些第三方的系统调用信息;
  4. ⽤于发现和定位问题的普通⽇志和异常⽇志等;

配置文件的格式

有两种

  1. .properties:以键值对的形式配置,key 和 value 之间是以“=”连接;
  2. .yml:语法和 JSON 语⾔类似,写法简单,可读性高;

下面通过举例来进行具体说明。

  1. 在这里插入图片描述
  2. 在这里插入图片描述

注意:

项目中两种形式可以共同存在,但 .properties 的优先级更高,即出现相同配置的话,例如配置端口号,会以 .properties 配置的端口号为准。加载完 .properties 配置文件后也会加载 .yml 配置文件。
实际业务中会采取一种统一的配置文件格式,这样一来可以更好的维护以及开发。

.properties

Spring Boot 项目创建完成后,会自动在 resources 包下面加载。
下面进行配置:

在这里插入图片描述

spring.application.name=demo
# 配置项目端口号
server.port=8080
# 连接数据库
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding= utf8
spring.datasource.username=root
spring.datasource.password=z0329

上述用 .properties 格式配置数据库、端口号,使得该项目可以与数据库进行关联,对其进行操作。
除上述配置外,还可以根据业务配置其它相关项。

读取配置文件

在项目中,还提供了读取配置文件内容的注解(@Value 注解)
使用方法如下:

@RestController
@RequestMapping("/t")
public class TestController {
    @Value("${server.port}")
    private String port;

    @PostConstruct // @PostConstruct注解的方法将会在依赖注入完成后被自动调用. @PostConstruct修饰的方法只会被服务器执行一次
    public void postConstruct(){
        System.out.println("读取配置文件中的端口号: " + port);
    }

}

结果如下:
在这里插入图片描述

注意:
在这里插入图片描述

.yml

yml 是树形结构的配置⽂件,语法是“key: value”注意 key 和 value 之间使⽤英⽂冒号加空格的⽅式组成的,其中的空格不可省略。
用法如下:

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/jdbc?characterEncoding=utf8
    username: root
    password: z0329

server:
  port: 8088

yml 读取配置文件的方法也是通过使用 @Value 注解,与上述.properties 一样,结果如下:

在这里插入图片描述

当两个配置文件同时存在时:

在这里插入图片描述
端口号就是以 .properties 配置文件为准,其优先级更高。

value 值加单双引号区别

在 yml 中定义三个个字符串,如下:

在这里插入图片描述

编写测试类:

/**
 * Created with IntelliJ IDEA.
 * Description: 用于测试 @Value 注解
 * 作用:读取配置文件中的内容
 */
@RestController
@RequestMapping("/t")
public class TestController {
    @Value("${server.port}")
    private String port;

    @PostConstruct // @PostConstruct注解的方法将会在依赖注入完成后被自动调用. @PostConstruct修饰的方法只会被服务器执行一次
    public void postConstruct(){
        System.out.println("读取配置文件中的端口号: " + port);
    }

}

结果如下:
在这里插入图片描述
结论:

  • 默认为字符串,不用加上单/双引号;
  • 单引号会转义特殊字符,将特殊字符转义成一个普通的字符串;
  • 双引号不会转义特殊字符,即特殊字符会作为本身进行输出

.properties 与 .yml

  1. properties 是以 key=value 形式配置的键值类型的配置⽂件, yml 使⽤的是类似 json 格式的树形配置⽅式进⾏配置.
  2. properties 配置文件内容较为冗余,例如连接数据库信息,都会以 spring.datasource 开头,而 yml 则不会,写法更简单,可读性高
  3. yml 支持更多的数据类型、通用性更好,支持多种语言。
  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值