qifa老虎机 当前位置:首页>qifa老虎机>正文

qifa老虎机

发布时间:2019-03-23

原标题:Sping Boot入门到实战之入门篇(三):Spring Boot属性配置

倒是你,刚才在那样的情况下对我留手就不怕我把握机会猛然将你给轰死啊,这样的话你可是死得很憋屈的。”

优发娱乐wwwyoufa8

但赵芜女却显然不是这么看的,在她想来,风魂毫无疑问是在处处针对她,竟让他的大弟子薛红线毁去太极宝玉,又让人在大唐皇宫坏她好事,现在更是跑到南海来找她麻烦。
一旁的道云上人看到自己解说无用,摇了摇头说道:“如今的这些后生,实在是好勇斗狠!”便飞到了二人中间想要强行的将二人分开。

也就是说他面对的已经不是不堪一击的吐谷浑军队了,而是精锐的安西唐军,尽管他已经意识到,靠三万吐蕃军很难占领九曲,但马重英依然决定先试探一下唐军的虚实。

  该篇为Sping Boot入门到实战系列入门篇的第三篇。介绍Spring Boot的属性配置。
 
  传统的Spring Web应用自定义属性一般是通过添加一个demo.properties配置文件(文件名自定义),然后在xml配置中通过
<util:properties id="demoProps" location="classpath:demo.properties" />

引入属性文件。再定义一个Bean来读取这些属性,Bean配置:

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="staticMethod" value="包名.DemoUtil.init" />
    <property name="arguments">
        <list>
            <ref bean="demoProps" />
        </list>
    </property>
</bean>

Bean定义:

public class DemoUtil {
     private static Properties properties;
     static void init(Properties props) {
          properties = props;
     }
     public static String getValue(String key){
          return properties.getProperty(key);
     }
}

在其它地方通过DemoUtil.getValue()方法来访问具体某个属性的值。

 
  Spring Boot中,可以在多个地方配置属性,包括properties文件,yaml文件,环境变量, 系统属性,命令行参数等, 这些属性都会被Spring Boot加到Environment中,可通过@Value注解,Environment 实例,或 @ConfigurationProperties注解的类来访问。
 
 
  属性加载优先级顺序:
  1. 如果有使用devtools,devtools 全局设置的属性(用户目录 ~/.spring-bootdevtools.properties)
  2. 测试类的注解@TestPropertySource
  3. 测试类属性注解 @SpringBootTest#properties
  4. 命令行参数
  5. SPRING_APPLICATION_JSON里的属性(环境变量或系统属性)
  6. ServletConfig初始化参数
  7. ServletContext初始化参数
  8. JNDI参数   java:comp/env
  9. Java系统属性  System.getProperties()
  10. 操作系统环境变量
  11. RandomValuePropertySource 配置的属性 random.*
  12. jar包外部的applictaion-{profile}.properties,applictaion-{profile}.yml配置文件
  13. jar包内部的applictaion-{profile}.properties,applictaion-{profile}.yml配置文件
  14. jar包外部的applictaion.properties,applictaion.yml配置文件
  15. jar包内部的applictaion.properties,applictaion.yml配置文件
  16. @Configuration类上的 @PropertySource注解指定的配置文件
  17. 默认属性: SpringApplication.setDefaultProperties
 上述属性配置,除了红色标注的外,其它一般应用较少。序号低的配置优先级高于序号高的配置,即如果存在相同属性配置 ,则序号低的配置会覆盖序号高的配置。
 
  配置属性
  1. 命令行参数
  启动Spring Boot应用时,可以指定命令行参数,如:
java -jar springboot-demo-properties.jar --my.name=command_line_devlink

  该参数值将会覆盖应用其它地方的同名属性配置值。命令行参数放在xx.jar 的后面。

  可以通过SpringApplication.setAddCommandLineProperties(false)  禁用命令行参数配置
 
  2. Java系统属性
  同样在启动Spring Boot应用时,可以指定Java系统属性,如:
java -Dmy.name=system_properties_devlink -jar springboot-demo-properties.jar

  Java系统属性放在java命令之后。

 
  3. 操作系统环境变量
  配置过JAVA_HOME的应该理解何为环境变量。某些操作系统可能不支持.分隔的属性名,可以改为以下划线连接。Spring Boot将myName, my.name, MY_NAME视为等效。
 
  4. 应用属性配置文件(.properties文件或 .yml文件)
  .properties文件属性配置格式:
my.name=devlink
my.list[0]=aaa  //配置列表
my.list[1]=bbb

  .yml文件属性配置格式:

my:
  name: devlink
  list:   //配置列表
     - aaa
     - bbb

yml中,属性名与值之间冒号后面必须有空格。

  应用属性配置文件位置:
  1. jar包所在当前目录下的子目录/config 
  2. jar包所在当前目录
  3. classpath根目录下的子目录/config
  4. classpath根目录
序号低的优先级高于序号高的优先级,即jar包外的配置优先级高于jar包内的配置。同一目录下,.properties文件的优先级高于.yml文件。application-{profile}.properties的优先级高于application.properties。
 
  访问属性
  1. 类中属性上添加 @Value("${xx}") 注解方式。如:
@Value("${my.name}")
private String myName;

可以指定默认值,如 @Value("${my.gender:f}"), 当my.gender未配置时,默认使用值"f"

 
  2. 通过@ConfigurationProperties注解的类来访问。如定义:
@Configuration
@ConfigurationProperties(prefix = "my")
public class MyConfig {
    private String name;
    getter/setter;
}

  然后在需要访问的Bean中,通过@Autowired 注入MyConfig实例,通过getName()方法即可访问my.name属性值。

 
  3. 通过Environment 实例访问。如:
@Autowired
private Environment env;

  然后调用env.getProperty("my.name")访问。

 
  本篇源码:https://github.com/ronwxy/springboot-learning/tree/master/springboot-demo-properties
 

编辑:杜宗北

发布时间:2019-03-23 01:05:24

当前文章://bw25d.html

利豪棋牌游戏平台 u乐平台官方注册 亚虎吴乐官方网站下载 奇幻城娱乐登陆网址 

责任编辑:文董顺