• @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;
  • 相关阅读:
    有一个实体类,只想返还一部分字段给前端
    Dozer-对象属性映射工具类
    java冒泡排序
    总结Java中的reference类型与四种引用类型
    关于jar包的两种导包方式
    Java Web项目的创建——IDEA+Maven+Tomcat
    关于maven的配置过程
    MYSQL数据库的增删改以及查
    关于linux系统下,出现ERROR 1366 (HY000): Incorrect string value: 'xE6xB4xBBxE5x8AxA8...' for column 'deptN的问题解决方法
    Java Script
  • 原文地址:https://www.cnblogs.com/mydesky2012/p/14150702.html
Copyright © 2020-2023  润新知