捕鱼大亨手机版下载 当前位置:首页>捕鱼大亨手机版下载>正文

捕鱼大亨手机版下载

发布时间:2019-02-17

原标题:SpringBoot: 配置加载顺序

猛然从角落里窜出一人,嘴里大声嚷着,众人吓了一跳,确是一个僧人,年纪应该有四十开外,右手顺势一扬,大把纸钱洒向空中,这些东西都是用来祭奠死人之用,这个时候出现难免不吉利。

橙光游戏易烊千玺虐心

身为五元素学院之一的象甲学院分别输给过排名前五的队伍,此时已是出线无望。
郭晓手捋胡须,大枪放在身旁,太平府巨变,府令被人所杀,两名同知同样不知所踪,剩下那些官员闭门不出,这个时候,谁都怕牵涉到自己惹来杀身之祸。

“老奴的第三个建议就是殿下的革新不要操之过急,很多革新都会触犯到大集团的利益,比如土地兼并,殿下若贸然拿土地开刀,必然会得罪整个宗室,那对殿下相当不利,我建议殿下还是以稳为上,稳定几年,再徐徐图之。”

        在应用程序中各种配置是不可避免的,Spring中对配置的抽象(Environment)可以说是达到了极致,其中有一项尤为突出:PropertySource(配置来源),配置来源通常包括命令行参数,系统属性,系统变量,perperties文件等。在使用SpringBoot过程中,将这些技术更进一步发挥,已经可以在很多环境下使用各种各样的配置。

配置的使用通常使用${}占位符来表示,可以在 properties文件中,基于XML的applicationContext.xml配置中,基于Annotation的@Value、@ConfigurationProperies中使用。

1、查找顺序

在使用过程中,查找顺序配置项的如何呢?

  1. Devtools global settings properties on your home directory (~/.spring-boot-devtools.properties when devtools is active).  用于开发环境。
  2. @TestPropertySource annotations on your tests.         (用于单元测试环境)
  3. @SpringBootTest#properties annotation attribute on your tests.(用于单元测试环境)
  4. Command line arguments.  (命令行参数 java -jar xxx.jar args, 其中参数形式是 --key1=value1 --key2=value2
  5. Properties from SPRING_APPLICATION_JSON (inline JSON embedded in an environment variable or system property)
  6. ServletConfig init parameters.
  7. ServletContext init parameters.
  8. JNDI attributes from java:comp/env.
  9. Java System properties (System.getProperties()).
  10. OS environment variables.
  11. RandomValuePropertySource that only has properties in random.*. (这个是用于取一个随机数,例如 random.int, random.long, random.uuid, random.int(10), random.int[10,100]等等)
  12. Profile-specific application properties outside of your packaged jar (application-{profile}.properties and YAML variants) 其实包括 .properties,.xml,.yml,yaml,详情见下面说明。
  13. Profile-specific application properties packaged inside your jar (application-{profile}.properties and YAML variants)
  14. Application properties outside of your packaged jar (application.properties and YAML variants).
  15. Application properties packaged inside your jar (application.properties and YAML variants). 
  16. @PropertySource annotations on your @Configuration classes.
  17. Default properties (specified using SpringApplication.setDefaultProperties).

对于第12, 13, 14, 15 项,详细情况是这样的:

在程序启动是,会查找并加载Profiles文件,它的详细过程是:

1) 取得要激活哪些profiles,以及这些profile可能存放的位置。
1.1)  使用PropertySources.get("spring.profiles.active")获取到要激活哪些Profiles,如果不指定会使用默认的名字:application。
当然了,也可以使用编程的方式设置: 在程序开始之前执行代码:SpringApplication.setAdditionalProfiles("yourProfile")
1.2)  使用PropertySources.get("spring.config.location")获取要激活的profiles可能存放的位置。如果不指定该属性,会使用默认位置:

file:./config/
file:./
classpath:./config/
classpath:./ 

2) 从"spring.config.location指定的位置去加载"spring.profiles.active指定的配置文件。

 配置文件以 [.properties, .xml, .yml, yaml]顺序查找,找不到的情况下会找下一个。

examples:
如果没有配置spring.profiles.active, spring.config.location, 则会找

file:./config/application-default.[peroperties|xml|yml|yaml]
file:./application-default.[peroperties|xml|yml|yaml]
classpath:./config/application-default.[peroperties|xml|yml|yaml]
classpath:./application-default.[peroperties|xml|yml|yaml]

file:./config/application.[peroperties|xml|yml|yaml]
file:./application.[peroperties|xml|yml|yaml]
classpath:./config/application.[peroperties|xml|yml|yaml]
classpath:./application.[peroperties|xml|yml|yaml]

 

2、示例

一个YAML格式的profile:

spring:
 profiles: development
db:
 url: jdbc:hsqldb:file:testdb
 username: sa
 password:
---
spring:
 profiles: test
db:
 url: jdbc:mysql://localhost/test
 username: test
 password: test

下面使用@Value使用的列子,配置需要在上述搜索路径下:

@Configuration
public class DBSettings {
@Value("${db.url}")
 private String url;
@Value("${db.username}")
 private String username;
@Value("${db.password}")
 private String password;
}

 

下面是@ConfigurationProperties例子 :

@Component
@ConfigurationProperties(prefix="db")
public class DBSettings {
 private String url;
 private String username;
 private String password;
}

下面使用@PropertySource 结合 @Value的例子,这种情况一般用于非上述搜索路径下的配置:

@Component
@Configuration
@PropertySource("classpath:/myconfig/myconfig.yaml")
public class DBSettings {
@Value("${db.url}")
 private String url;
@Value("${db.username}")
 private String username;
@Value("${db.password}")
 private String password;
}

 

编辑:道乙纯

发布时间:2019-02-17 00:06:50

当前文章:http://www.radiokey.biz/n1omz/index.html

趣友麻将电脑版 天津公寓 比特棋牌平台提现封号 集结号下分找谁微信 四人斗地主 能赚钱提现的棋牌游戏 蔚蓝棋牌电脑版官网 鱼扑克玩的人多嘛

68462 58181 52840 67015 81296 5594748899 83656 63660

责任编辑:扁石通

随机推荐