Springboot 配置

一.@ConfigurationProperties(“person”)与@Value("${person.name}")的区别:

  • 1.前者直接全配置 后者需要一个一个的配置
  • 2.前者支持校验 后者不支持
  • 3.前者不知此#{11*2}计算 后者支持
  • 4.前者支持松散语法 即userName与user_name与user-name没有区别 后者就不行
  • 5.前者可以配置复杂数据(map\map里面list之类的 后者不支持

二@PropertySource(value = {“classpath:person.properties”})
与@ImportResource(locations = {“classpath:bean.xml”})

  • @ConfigurationProperties(“person”)配合@PropertySource(value = {“classpath:person.properties”}) 可以加载自定义的配置文件,但是只支持.properties文件
  • @ImportResource(locations = {“classpath:bean.xml”}可以导入自定义的spring的xml文件。 当然这样很麻烦 可以直接通过平配置类来解决(需要@Configuration 和@bean)来使

三.占位符

  • 1… r a n d o m . i n t 或 {random.int}或 random.int{randomuuid}等等随机生成一个占位符

  • 1.${name:hello}占位:如果name没有就会默认用hello来替换

四.profile 在不同的环境用不同的配置文件

  1. 1.若是.properties配置文件:
    编写多个application-{自己取}.properties,然后在application.properties文件中通过下面这行代码来使用哪个配置文件在这里插入图片描述
  2. 若是yaml文件 则直接通过—来表示文档快
    在这里插入图片描述
    ##使用多种版本的方法:
  3. 通过spring.profiles.active=dev
    -通过命令行:在idea中:在这里插入图片描述

在这里插入图片描述
或者使用打包成jar之后 通过java -jar jar名字 --spring.profiles.active=dev
4. 通过配置虚拟机参数的方式
5. idea中在这里插入图片描述
命令行和虚拟机参数命令行的优先级更高,如果都配置了 则用命令行配置的。
五.配置文件的位置
在这里插入图片描述
1.springboot的优先级

  1. 访问工程下config/application.properties
  2. 访问工程下application.properties
  3. 访问classpath:下面config/propertie
  4. 访问classpath:下面propertie

并且他们都是形成互补的,如果都定义了相同的会使用优先级高的,如果高优先级没有,可以加载下面的配置文件。
2.在已经开发打包好了,需要重新加载另一个配置文件可以通过在命令行的方式java -jar jar名字 --spring.config.location=G:/application.properties
在已经打包好这样是非常方便的,可以不用再重新修改java内部的配置文件。
3.通过外部来加载配置文件的优先级
在这里插入图片描述
红色部分用的比较多:
1.第一个就是通过java -jar jar名字 --server.port=8081 --server.contextPath=hello
6.就是加载与jar包在同一个路径下profile配置文件
7加载内部的profile配置文件
6.就是加载与jar包在同一个路径下配置文件
7加载内部的profile配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值