zoukankan      html  css  js  c++  java
  • @Value注解

    1 @Value注解作用

    读取配置文件中的属性。

    @Value的值有以下两类:
    ${ property : default_value } 
    #{ obj.property? :default_value } 

    $注入的是外部配置文件对应的property,使用“:”对未配置或值为空的属性设置默认值。

    #注入的是SpEL表达式对应的内容,使用“?:”对未配置或值为空的表达式设置默认值。

    default_value为默认值。

    2 举例

    apollo.meta = xxxx  字符串
    
    apollo.namespace = xxx,xxx,xxx  数组
    
    channelIdToName = {1: "全画作", 2: "全古籍", 3: "全音乐"}  map

    基于配置文件注入

    /**
     * 注入简单字符串
     */
    @Value("${apollo.meta:xxx}")  读取字符串配置项,配置为空时取默认值xxx。
    String meta;
    
    /**
     * 注入数组,默认','分隔
     */
    @Value("${apollo.namespace}")  读取逗号分隔的字符串
    String[] array;
    
    /**
     * 注入列表,默认','分隔
     */
    @Value("${apollo.namespace}")  读取逗号分隔的字符串
    List<String> list;
    
    /**
     * 注入map,#和$并用,#要在$前面
     */
    @Value("#{${channelIdToName}}")  读取配置文件中的map,直接赋值给已定义好的map类型。
    Map<Integer,String> map;

    基于非配置文件注入

    /**
     * 注入普通字符串,相当于直接给属性默认值
     */
    @Value("项目名")
    private String projectName;
    
    
    /**
     * 注入操作系统属性
     */
    @Value("#{systemProperties['os.name']}")
    private String systemPropertiesName;
    
    
    /**
     * 注入其他Bean属性:注入article对象的属性title
     */
    @Value("#{article.title}")
    private String articleTitle;
    
    
    /**
     * 注入列表,设置根据"|"来分隔
     */
    @Value("#{'${words}'.split('\|')}")
    private List<String> numList;
    
    
    /**
     * 注入文件资源
     */
    @Value("classpath:config.xml")
    private Resource config;
  • 相关阅读:
    Java 内存管理机制:04 Java 内存分配策略
    Java 内存管理机制:03 垃圾收集器
    Java 内存管理机制:02 OOM异常
    蓝桥杯参赛笔记
    字符串和字符数组的输入输出种类对比
    centos6打开firewall遇到unit firewall.service is masked
    centos6打开防火墙时遇到Reason: No such file or directory
    linux配置文件
    试题 算法训练 素因子去重
    试题 算法训练 最大质因数
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/14150702.html
Copyright © 2011-2022 走看看