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;
  • 相关阅读:
    golang API开发过程的中的自动重启(基于gin框架)
    单位时间的调度问题 —— 贪心
    Qt获取文件夹下文件
    C++ using
    QGridLayout动态添加控件
    数据库查询优化-20条必备sql优化技巧
    Django:类视图的装饰器
    使用同一个模态框进行新增和修改
    Django:使用celery处理异步任务
    jenkins:调用jenkinsAPI
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/14150702.html
Copyright © 2011-2022 走看看