ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

springboot配置文件以及引入外部资源

2021-06-27 10:59:57  阅读:196  来源: 互联网

标签:PropertySource springboot 配置文件 private person 引入 properties name


一:springboot配置文件

SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的

application.properties

  • 语法结构 :key=value

application.yml

  • 语法结构 :key:空格 value

配置文件的作用 :

修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;

比如我们可以在配置文件中修改Tomcat 默认启动的端口号!测试一下!

server.port=8081

1:yaml基础语法

说明:语法要求严格!

1、空格不能省略

2、以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。

3、属性和值的大小写都是十分敏感的。

yaml例子

@ConfigurationProperties(prefix = “person”)

若使用以上注解,最好添加以下依赖,否则报红色
在这里插入图片描述

//导入配置文件处理器,配置文件进行绑定就会有提示,需要重启
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <optional>true</optional>
</dependency>

实体类

/*
@ConfigurationProperties作用:
将配置文件中配置的每一个属性的值,映射到这个组件中;
告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
参数 prefix = “person” : 将配置文件中的person下面的所有属性一一对应
注意:如果属性不对应会赋值null
*/
@Component //注册bean
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
}

配置文件注入

person:
  name: 小小
  age: 3
  happy: false
  birth: 2000/01/01
  maps: {k1: v1,k2: v2}
  lists:
   - code
   - girl
   - music
  dog:
    name: 旺财
    age: 1

2:配置文件占位符

person:
    name: qin${random.uuid} # 随机uuid
    age: ${random.int}  # 随机int
    happy: false
    birth: 2008/01/01
    maps: {k1: v1,k2: v2}
    lists:
      - code
      - girl
      - music
    dog:
      name: ${person.hello:other}_旺财
      age: 1
      birth: ${person.birth}_0001

二:引入外部资源

  1. @PropertySource :加载指定的配置文件;
  2. @configurationProperties:默认从全局配置文件中获取值;

测试

1、我们去在resources目录下新建一个person.properties文件

name=shen

2、然后在我们的代码中指定加载person.properties文件

//@PropertySource(value = "classpath:person.properties")
@PropertySource(value = "file:/app/tomcat/conf/person.properties")
//@PropertySource(value = {"test.properties","file:/etc/test.properties",},ignoreResourceNotFound = true)
@Component //注册bean
public class Person {

    @Value("${name}")
    private String name;

    ......  
}

总结:

1:@PropertySource注解引入外部配置文件,
2:比如数据库配置jdbc,环境分离,只需要javaBean与映射的属性配置在外部位置即可。通过注解指定数据源位置。其他的还放在classpath下,
3:比如docker部署war包,yml放resources下,里边的配置信息url可以单独配置外部路径,不影响程序其他不变的配置。
4:解决yml放外部后springboot读取不到配置问题。

标签:PropertySource,springboot,配置文件,private,person,引入,properties,name
来源: https://blog.csdn.net/kang1011/article/details/118267833

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有