整个项目中所有重要的数据都是在配置文件中配置的:
Spring Boot配置文件的格式有两种,一种是properties,一种是yml.
properties是创建Spring Boot项目时默认的文件格式,属于是旧版的配置文件;yml是近几年发展起来的格式,需要手动创建.两种格式的配置文件各有优缺点.
特殊说明
格式就是key=value.
配置文件中有两种配置项:
我们在配置文件中,用#来进行注释.
当我们注释完,在重启idea之后,打开配置文件,注释的文字有可能会出现乱码.
这是因为当前配置文件默认的字符集是ISO-8859-1.
要解决这个问题,我们要在settings里搜索encoding,进入File Encoding,将这三个地方都改为UTF-8.
这里设置的是当前项目的字符集,我们还要设置新项目的字符集.
步骤同上.
设置完成之后,删除原来的application.properties,创建一个新的application.properties,这样我们的配置文件才能支持中文.
也就是说我们要设置两个Settings,一个是当前项目的配置文件,另一个是新项目的配置文件.这就解决了注释会乱码的问题.
读取配置文件我们使用@Value("${名称}")的方式来读取.
优点
缺点:写法比较冗余.
yml是YAML的缩写,它的全称是Yet Another Markup Language,翻译成中文就是"另一种标记语言".
yml是树形结构的配置文件,它的基础语法是key: value.注意冒号和value之间的空格不能省略.
yml配置不同的数据类型
yml读取配置的方式和properties相同.
package com.example.demo.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @ResponseBody //加在类上,表示当前类中的所有方法返回的都是非静态页面的数据 //如果不加这个注解,return "hello world"就会去前端文件里找名字为hello world的页面 public class TestController { @Value("${string.value}") private String string1; @Value("${server.port}") private int port; @RequestMapping("/sayHi") public String sayHi(){ return "hello world " + string1 +" 当前项目的端口号: " + port; } }
从上述结果可以看出:
字符串默认是不用加上单引号和双引号的,单引号的特殊字符最终只是一个普通的字符串数据,双引号里的特殊字符会做为本身想表达的意思.
可以看到打印了对象的属性.
yml也可以配置list集合,但是几乎用不到.
1.properties是以 key=value 的形式配置的键值类型的配置文件,而yml使用的是类似json格式的树形配置方式进行配置的,yml 层级之间使用换行缩进的方式配置,key和value 之间使用“:”英文冒号加空格的方式设置,并且空格不可省略。
2.properties 为早期并且默认的配置文件格式,但其配置存在一定的冗余数据,使用yml可以很好的解决数据冗余的问题。
3.yml通用性更好,支持更多语言,如Java、Go、Python等,如果是云服务器开发,可以使用一份配置文件作为Java和Go的共同配置文件。
4.yml支持更多的数据类型。
一个项目至少有三个配置文件,因为有多个环境,开发环境,测试环境,生产环境,这三个环境所连接的数据库都是不同的.
设置不同环境的配置文件会让我们的工作更加高效且不容易出错.
通过一个需求实现来理解:
需求:开发环境端口号:6666,测试环境端口号7777,生产环境端口号8888.
配置不同环境的配置文件.Spring Boot已经帮我们设置了规则.
Spring Boot不同平台的配置规则:
可以看到,此时的端口号,就是我们设置的活跃配置文件里写的端口号.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务