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;
  • 相关阅读:
    linux创建用户
    Java理解笔记------杂项
    java高效并发
    GPG备份秘钥
    (二)数据同步利器syncthing
    (一)安装samba
    (序)利旧打造私有云
    mysql的docker化安装
    (八)netty的SSL renegotiation攻击漏洞
    (七)json序列化
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/14150702.html
Copyright © 2011-2022 走看看