使用@Value注解从配置文件中读取数组

@Value注解从配置文件读取数组

作用:从配置文件中取值

用法:

1.取单个值

(1)configuration.properties配置

status.notice.switch=open

(2)java文件自动注入

@Value("${status.notice.switch}")
private String statusNoticeSwitch;

2.取数组

(1)configuration.properties配置

lanwon.hospital.id=43534,234543,w353654

(2)java文件自动注入

@Value("#{'${lanwon.hospital.id}'.split(',')}")
private List<String> hospitalIdList;

使用@Value注解注入值(配置文件读取)

在 Spring 组件中使用 @Value 注解的方式,可以直接从 .properties,.yum 等配置文件获取配置信息便于实现项目的配置化运行。

1. 配置方式

1.1 使用

1、@Value("${key}")

2、@Value("#{configProperties[‘key']}") (SpEL表达式)

1.2 默认值配置

1、基础方式: ${key}:defaultvalue

2. SpEL方式:

使用 Spring Expression Language (SpEL) 设置默认值。

下面的代码标示在systemProperties属性文件中,如果没有设置 some.key 的值,my default system property value 会被设置成默认值。

@Value("#{systemProperties['some.key'] ?: 'my default system property value'}")
private String spelWithDefaultValue;

2. 使用场景

2.1 声明的变量

public static class FieldValueTestBean {
  @Value("#{ systemProperties['user.region'] }")
 private String defaultLocale;
}

2.2 setter 方法

public static class PropertyValueTestBean {
    private String defaultLocale;
    @Value("#{ systemProperties['user.region'] }")
    public void setDefaultLocale(String defaultLocale) {
        this.defaultLocale = defaultLocale;
    }
}

2.3 方法

public class SimpleMovieLister {
    private MovieFinder movieFinder;
    private String defaultLocale;
    @Autowired
    public void configure(MovieFinder movieFinder,
            @Value("#{ systemProperties['user.region'] }") String defaultLocale) {
        this.movieFinder = movieFinder;
        this.defaultLocale = defaultLocale;
    }
    // ...
}

2.4 构造方法

public class MovieRecommender {
    private String defaultLocale;
    private CustomerPreferenceDao customerPreferenceDao;
    @Autowired
    public MovieRecommender(CustomerPreferenceDao customerPreferenceDao,
            @Value("#{systemProperties['user.country']}") String defaultLocale) {
        this.customerPreferenceDao = customerPreferenceDao;
        this.defaultLocale = defaultLocale;
    }
    // ...
}

3 各种属性的注入及其默认值设置

3.1 字符串

字符串类型的属性设置默认值。

@Value("${some.key:my default value}")
private String stringWithDefaultValue;

some.key 没有设置值,stringWithDefaultValue 变量值将会被设置成 my default value 。

如果默认值设为空,也将会被设置成默认值。

@Value("${some.key:}")
private String stringWithBlankDefaultValue;

3.2 基本类型

基本类型设置默认值。

@Value("${some.key:true}")
private boolean booleanWithDefaultValue;
@Value("${some.key:42}")
private int intWithDefaultValue;

3.3 包装类型

包装类型设置默认值。

@Value("${some.key:true}")
private Boolean booleanWithDefaultValue;

@Value("${some.key:42}")
private Integer intWithDefaultValue;

3.4 数组

数组的默认值可以使用逗号分割。

@Value("${some.key:one,two,three}")
private String[] stringArrayWithDefaults;

@Value("${some.key:1,2,3}")
private int[] intArrayWithDefaults;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Springboot在有参构造方法类中使用@Value注解取值

    我们在Springboot中经常使用@Value注解来获取配置文件中的值,像下面这样 @Component class A { @Value("${user.value}") private String configValue; public void test() { System.out.println(configValue); } } 但有时我们需要这个类拥有一个有参的构造方法,比如 @Component class A { @Value("${user.value

  • SpringBoot 使用 @Value 注解读取配置文件给静态变量赋值

    1.application.properties 配置文件 mail.username=xue@163.com mail.password=xue mail.host=smtp.163.com mail.smtp.auth=true 2.给普通变量赋值,直接在变量上添加 @Value 注解 import org.springframework.beans.factory.annotation.Value; public class MailConfig { @Value("${mail.user

  • Spring @value和@PropertySource注解使用方法解析

    这篇文章主要介绍了Spring @value和@PropertySource注解使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 @Value注解:可以使用注入基本字符串 EL表达式,从配置文件读取数据 @PropertySource用于引入单个配置文件 @PropertySources用于引入多个配置文件 @PropertySource或者@PropertySources引入的数据都是存在环境变量ConfigurableEnviro

  • spring中@value注解需要注意的问题

    首先,@value需要参数,这里参数可以是两种形式:@Value("#{configProperties['t1.msgname']}")或者@Value("${t1.msgname}"): 其次,下面我们来看看如何使用这两形式,在配置上有什么区别: 1. @Value("#{configProperties['t1.msgname']}")这种形式的配置中有"configProperties",其实它指定的是配置文件的加载对

  • 详解Spring通过@Value注解注入属性的几种方式

    场景 假如有以下属性文件dev.properties, 需要注入下面的tag tag=123 通过PropertyPlaceholderConfigurer <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="dev.properties" /&

  • 基于Spring boot @Value 注解注入属性值的操作方法

    本文主要介绍Spring @Value 注解注入属性值的使用方法的分析,文章通过示例代码非常详细地介绍,对于每个人的学习或工作都有一定的参考学习价值 在使用spring框架的项目中,@Value是经常使用的注解之一.其功能是将与配置文件中的键对应的值分配给其带注解的属性.在日常使用中,我们常用的功能相对简单.本文使您系统地了解@Value的用法. @Value注入形式 根据注入的内容来源,@ Value属性注入功能可以分为两种:通过配置文件进行属性注入和通过非配置文件进行属性注入. 非配置文件注

  • Spring使用@Value注解与@PropertySource注解加载配置文件操作

    1.@Value注解简介 Spring框架提供的@Value注解可以将外部的值动态注入到Bean中,@Value注解使用在字段.构造器参数和方法参数上. @Value可以指定属性取值的表达式,支持通过#{}使用SpringEL来取值,也支持使用${}来将属性来源中(Properties文件.本地环境变量.系统属性等)的值注入到Bean的属性中. 此注解值的注入发生在AutowiredAnnotationBeanPostProcessor类中. @Value注解实现以下几种情况: (1)注入普通字

  • Spring @Value注解失效问题解决方案

    项目使用的是SSM体系,spring的配置如下,配置没问题,因为我发现其他文件中的@Value可以使用,只有一处@Value失效了. spring-servlet.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.or

  • 使用@Value注解从配置文件中读取数组

    @Value注解从配置文件读取数组 作用:从配置文件中取值 用法: 1.取单个值 (1)configuration.properties配置 status.notice.switch=open (2)java文件自动注入 @Value("${status.notice.switch}") private String statusNoticeSwitch; 2.取数组 (1)configuration.properties配置 lanwon.hospital.id=43534,2345

  • SpringBoot如何读取配置文件中的数据到map和list

    目录 读取配置文件中的数据到map和list springboot读取配置文件中的配置信息到map springboot读取配置文件中的配置信息到list 测试上述配置是否有效 配置文件的读取(包括list.map类型) 读取配置文件 第一种方式 第二种方式 扩展 读取配置文件中的数据到map和list 之前使用过@Value("${name}")来读取springboot配置文件中的配置信息,比如: @Value("${server.port}") private

  • 关于springboot 配置文件中属性变量引用方式@@解析

    这种属性应用方式是 field_name=@field_value@. 两个@符号是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以应该是起不到引用变量的作用. @@方式可以引用springboot非默认配置文件(即其他配置文件)中的变量: springboot默认配置文件是 src/main/resources/application.properties 补充知识:springboot项目使用@Value注解获取配置文件中的配置信息 application

  • Java从数据库中读取Blob对象图片并显示的方法

    本文实例讲述了Java从数据库中读取Blob对象图片并显示的方法.分享给大家供大家参考.具体实现方法如下: 第一种方法: 大致方法就是,从数据库中读出Blob的流来,写到页面中去: 复制代码 代码如下: Connection conn = DBManager.getConnection();   String sql = "SELECT picture FROM teacher WHERE id=1";   PreparedStatement ps = null;   ResultSe

  • SpringBoot读取yml文件中配置数组的2种方法

    目录 通过@ConfigurationProperties注解读取 1.读取的是配置在application.yml文件中的属性 2.如果配置是在一个单独的yml文件中 通过@Value注解变相读取,曲线救国方案 一直都在用Spring的@Value注解读取yml中的配置,这两天在读取配置的时候,想读取yml中配置的一个数组,通过@Vaule一直获取不到,通过一番资料的查询,才彻底清楚了@Vaule的使用情况. 在Spring中读取配置文件的快捷方法常见的有两种,一个是通过@Vaule注解进行单

  • 如何在yml配置文件中使用中文注解

    目录 yml配置文件中使用中文注解 问题 根本原因 解决 yml配置文件简单语法及小坑 yml文件使用方法 yml配置文件中使用中文注解 问题 我们在yml中写注解一般是这样的 #xxxx 当我们启动时我们会遇到这样的问题 Failed to load property source from 'file:/D:/idea/bonc/server/monitor-streaming/target/classes/application.yml' (classpath:/application.y

  • 详解Spring-boot中读取config配置文件的两种方式

    了解过spring-Boot这个技术的,应该知道Spring-Boot的核心配置文件application.properties,当然也可以通过注解自定义配置文件的信息. Spring-Boot读取配置文件的方式: 一.读取核心配置文件信息application.properties的内容 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法有两种,都比较简单. 核心配置文件applicati

  • springboot读取配置文件中的参数具体步骤

    springBoot是java开发中会经常用到的框架,那么在实际项目中项目配置了springBoot框架,应该如何在项目中读取配置文件中的参数呢? 1.打开eclipse开发工具软件. 2.在项目中确保pom.xml文件已引用了[spring-boot-starter-web]jar包. 因为springBoot启动的时候会自动去获取项目中在resources文件录目下的名为application.properties参数配置文件. 3.在项目中的src/main/resource文件录目下创建

  • SpringBoot读取properties或者application.yml配置文件中的数据

    读取application文件 在application.yml或者properties文件中添加: user.address=china user.company=demo user.name=让我康康 1.使用@Value注解读取 直接 代码如下: package im.homeapi.controller; import org.springframework.beans.factory.annotation.Value; import org.omg.CORBA.PUBLIC_MEMBE

  • 使用springboot在工具类中读取配置文件(ClassPathResource)

    springboot工具类中读取配置文件 1.创建配置文件(application.properties) spring.activemq.broker-url=tcp://localhost:61616 spring.activemq.user=admin spring.activemq.password=admin spring.activemq.in-memory=true spring.activemq.pool.enabled=false 2.创建工具类(PropertiesUtil.

随机推荐