Springboot 配置

[email protected](“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…random.int{random.int}或{randomuuid}等等随机生成一个占位符

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

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

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

Springboot 配置
或者使用打包成jar之后 通过java -jar jar名字 --spring.profiles.active=dev
4. 通过配置虚拟机参数的方式
5. idea中Springboot 配置
命令行和虚拟机参数命令行的优先级更高,如果都配置了 则用命令行配置的。
五.配置文件的位置
Springboot 配置
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.通过外部来加载配置文件的优先级
Springboot 配置
红色部分用的比较多:
1.第一个就是通过java -jar jar名字 --server.port=8081 --server.contextPath=hello
6.就是加载与jar包在同一个路径下profile配置文件
7加载内部的profile配置文件
6.就是加载与jar包在同一个路径下配置文件
7加载内部的profile配置文件