• @Value注解分类解析


    1.1.1            @Value注解

    @Value的作用是通过注解将常量、配置文件中的值、其他bean的属性值注入到变量中,作为变量的初始值。

    (1)常量注入

    @Value("normal")

        private String normal; // 注入普通字符串

        @Value("classpath:com/hry/spring/configinject/config.txt")

        private Resource resourceFile; // 注入文件资源

     

        @Value("http://www.baidu.com")

    private Resource testUrl; // 注入URL资源

    bean属性、系统属性、表达式注入@Value("#{}")

    bean属性注入需要注入者和被注入者属于同一个IOC容器,或者父子IOC容器关系,在同一个作用域内。

        @Value("#{beanInject.another}")

    private String fromAnotherBean; // 注入其他Bean属性:注入beanInject对象的属性another,类具体定义见下面

    @Value("#{systemProperties['os.name']}")

        private String systemPropertiesName; // 注入操作系统属性

     

        @Value("#{ T(java.lang.Math).random() * 100.0 }")

    private double randomNumber; //注入表达式结果

     

    (3)配置文件属性注入@Value("${}")

    @Value("#{}")读取配置文件中的值,注入到变量中去。配置文件分为默认配置文件application.properties和自定义配置文件

    •application.properties。application.properties在spring boot启动时默认加载此文件

    •自定义属性文件。自定义属性文件通过@PropertySource加载。@PropertySource可以同时加载多个文件,也可以加载单个文件。如果相同第一个属性文件和第二属性文件存在相同key,则最后一个属性文件里的key启作用。加载文件的路径也可以配置变量,如下文的${anotherfile.configinject},此值定义在第一个属性文件config.properties

    第一个属性文件config.properties内容如下: 
    ${anotherfile.configinject}作为第二个属性文件加载路径的变量值

    book.name=bookName

    anotherfile.configinject=placeholder

    第二个属性文件config_placeholder.properties内容如下:

    book.name.placeholder=bookNamePlaceholder

    下面通过@Value(“${app.name}”)语法将属性文件的值注入bean属性值,详细代码见:

                           

    @Component

    // 引入自定义配置文件。

    @PropertySource({"classpath:com/hry/spring/configinject/config.properties",

     // 引入自定义配置文件。${anotherfile.configinject}则是config.properties文件中的第二个属性值,会被替换为config_placeholder.properties。

       "classpath:com/hry/spring/configinject/config_${anotherfile.configinject}.properties"})

    public class ConfigurationFileInject{

        @Value("${app.name}")

        private String appName; // 这里的值来自application.properties,spring boot启动时默认加载此文件

     

        @Value("${book.name}")

        private String bookName; // 注入第一个配置文件config.properties的第一个属性

        @Value("${book.name.placeholder}")

        private String bookNamePlaceholder; // 注入第二个配置外部文件属性

    }

     

    自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

    https://www.cnblogs.com/bclshuai/p/11380657.html

  • 相关阅读:
    特殊集合
    推箱子
    集合
    数组

    循环语句 练习题
    穷举与迭代
    循环语句
    练习题
    switch case
  • 原文地址:https://www.cnblogs.com/bclshuai/p/10309119.html
Copyright © 2020-2023  润新知