Spring Boot的配置文件

打印 上一主题 下一主题

主题 1025|帖子 1025|积分 3075

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
目录

一、配置文件
1.properties为后缀的配置文件
1.1基本语法
1.2读取配置文件
1.3properties的优缺点
1.4加中文表明出现乱码
2.yml格式的配置文件
2.1基础语法
2.2读取配置文件
2.2.1对象存储到配置文件中
2.3yml的优缺点
2.4用不用加单引号大概双引号呢?
2.5设置不同环境的配置文件


一、配置文件

   配置文件在项目中的权重很高,很多紧张数据都是在配置文件中进行配置的。比如我们连接数据库的信息,项目的端标语等等。
  配置文件中可以有表明,表明通过#来添加,yml情势的编码为UTF8以是允许有中文存在,但properties格式的编码不是UTF8,容易出现乱码,办理方法在后面。
  Spring Boot提供的配置文件格式有两种:.yml(yaml)情势和.properties两种。前者是新款,后者是老款,也是Spring Boot项目默认提供的款式。
        1.两种格式的配置文件可以共存,但是当两中格式的配置文件配置了雷同的东西,会用properties格式的文件。也就是因为properties配置文件的优先级比yaml格式的配置文件的优先级高。
        2.正常来讲,我们最好不要将两种格式的配置文件存放在同一项目中,维护的时候不好维护,而且最好统一起来。而且以后企业也会指定你用哪种格式的配置文件。
配置文件中的配置项分为两种:1.系统配置项,如server.port等,这个是系统给我们定义的。2.用户自定义配置(非系统配置项),这种是用户自己定义的。
1.properties为后缀的配置文件

1.1基本语法

这种配置文件是早期的配置文件,也是以键值的方式进行连接的:key=value。
  1. #系统提供的配置
  2. server.port=8080
  3. #自己定义的配置
  4. java = 106
复制代码
1.2读取配置文件

通过注解@Value("${存储到配置文件中的名字来获取}")
下面代码用到两个注解,我在这大概说一下:
(1)RestController注解,这个是RestBody和Controller的结合体。RestBody这个注解就是表现返回的是一些数据而不是静态页面。
(2)PostConstruct这个注解,各人感觉眼熟了嘛?这不就是Bean生命周期那篇文章提到过的?在初始化阶段的时候,初始化的时候会调用这个注解标志的方法。
  1. TestController类
  2. @RestController
  3. public class TestController {
  4.     @Value("${java}")
  5.     public int num;
  6.     @PostConstruct
  7.     public void test() {
  8.         System.out.println(num);
  9.     }
  10. }
  11. 配置文件中
  12. server.port=8080
  13. java = 106
复制代码

1.3properties的优缺点

优点:1.这个配置文件是系统默认的配置文件。
           2.properties配置项比yml的优先级高。
           3.格式简单,不容易出错。
缺点:1.写法冗余。(看下面这个图片,前面部门全部都雷同,只是最后那不同,我们雷同的部门却要写3次)

1.4加中文表明出现乱码

同样需要设置两个地方,全局的setting和当前项目的setting。将下面图片赤色框框住的地方全部设置为UTF-8编码。

可能各人加载完以后,配置文件照旧乱码,那是因为,每次项目启动的时候加载配置文件,你修改了编码方式以后,配置文件已经加载完成了,以是并没有更换为UTF-8编码方式。
可以将配置文件删除,再重新建一个就行了。
2.yml格式的配置文件

yaml格式的简写情势是yml。利用这种格式的时候一定要对空格非常敏感,因为这个对空格要求很猛烈。
2.1基础语法

接纳的格式是key: value(一定要注意!value和冒号之间有空格)空格不可少,如果缺少了空格,就会发生错误。

2.2读取配置文件

对于某一项的读取和properties方法一样,我们来说点不一样的。yml文件可以配置对象,也可以配置集合等。获取方式就不是@Value了而是接纳@ConfigurationProperties这个注解。
2.2.1对象存储到配置文件中

两种方式存储

读取配置文件中的对象,也就是通过@ConfigurationProperties("student")来读取的。
  1. TestController
  2. @RestController
  3. @Data
  4. @ConfigurationProperties("student")
  5. public class TestController {
  6.     private int id;
  7.     private int age;
  8.     private String name;
  9. }
  10. TestComponent
  11. @Component
  12. public class TestComponent {
  13.     @Autowired
  14.     public TestController testController;
  15.     @PostConstruct
  16.     public void test() {
  17.         System.out.println(testController);
  18.     }
  19. }
复制代码
List和对象方式存储一样,取出来的方式也一样。
2.3yml的优缺点

优点:1.yml可读性高,写法简单,易于明白,语法和JSON类似。
           2.yml支持更多数据范例,可以简单表达数组,对象,集合等。所有基础范例它也可以进行表现。
           3.yml支持更多编程语言,可以用在Java,Golang,PHP,Python,Ruby,JS,等。
缺点:1.对于新手不太友爱,因为对空格要求比较强,以是当忘记空格后容易出错。
2.4用不用加单引号大概双引号呢?

1.字符串默认不用加上单引号大概双引号。
2.单引号会转义特别字符,特别字符终极只是一个普通的字符串数据。
  1. str1: 'Hello\n,world'
  2. //输出Hello\n,world
  3. str2: "Hello\n,world"
  4. //输出Hello
  5.       ,world
复制代码
3.双引号不会转义字符串里面的特别字符,特别字符会表达出本身想表达的意思。
2.5设置不同环境的配置文件

在实际开发中,我们可能有很多不同的环境,比方说开发环境,生产环境等等,对于不同环境会对应一个配置文件,但会有一些要求:
1.每个项目中必须有个主配置文件,名称必须为application.yml(properties)。
2.不同平台的配置文件的名字必须为application-xxx.yml,只允许对xxx处进行修改。
3.我们怎么去利用不同的环境(平台)的配置文件呢?在主配置文件中进行配置。(其中的xxx就是命名的时候不同的部门,比方说一个配置文件名为application-dec.yml则在主配置文件中设置运行环境就为spring.profiles.active=dev)
  1. spring.profiles.active=xxx
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81429

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表