springboot如何读取自定义属性

很多时候,我们开发当中,需要通过配置自己的属性信息来满足不同环境下的应用部署,因此需要springboot能够读取我们自定义的属性,常用的读取自定义属性有@Value和@ConfigurationProperties,下面分别做简单的介绍
1、@Value

可以看到点击进去源码,表明当前注解,可以使用在属性、方法或者构造方法上,支持SPEL表达式和占位符注解方式,此标签通常是单个配置加载的数据
例如在配置文件中,配置了name和age两个属性

lixl:
  person:
    name: lixl
    age: 20
我们在代码中的属性上,直接注解
/**
 * @author lixl
 * @description
 * @date 2022/2/15
 */
@Component
public class Person {

    @Value("${lixl.person.name}")
    private String name;

    @Value("${lixl.person.age}")
    private String age;

    @Override
    public String toString() {
        return "name:"+this.name+";age:"+this.age;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

可以看到,正常打印

修改代码,将其注解在方法上,运行main方法,依然可以使用

	@Value("${lixl.person.name}")
    public void setName(String name) {
        this.name = name;
    }

再次修改代码,将其注解在构造方法的参数上,依然能够进行注入

    public Person(@Value("${lixl.person.name}")String name, @Value("${lixl.person.age}")String age) {
        this.name = name;
        this.age = age;
    }

另外,如果我们需要给定@Value默认值,也是可以的,例如我们删除了name字段,同时在@Value中增加默认值

// 默认是通过 : + 默认值 给定
 public Person(@Value("${lixl.person.name:张三}")String name, @Value("${lixl.person.age}")String age) {
        this.name = name;
        this.age = age;
 }

运行结果,也是正常的

我们再来看看Spel表达式

   @Value("#{'男'}") // 增加性别字段
   private String gender;

	// 修改toString方法打印性别
	public String toString() {
        return "name:"+this.name+";age:"+this.age+";gender:"+this.gender;
    }

运行结果正常通过,还有其他很多Spel表达,此处就不完全列举了
比如我们在配置文件中指定了属性name=‘java’ 在需要使用的组件中,设定@Value("${name}") 注解在相应的字段上,springboot就会自动加载。当然,@Value还可以使用Spel表达是,注入值使用@Value("#{Spel}").

2、@ConfigurationProperties 可以对配置文件中,某一类前缀开头的属性整体进行注入,例如:
配置文件中,有如下配置

test.name='lixl'
test.age='age'

配置类需要按照一下方式编写

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component // 首先本身要是springboot容器中的组件
@ConfigurationProperties(prefix = "test") // 指定前缀
public class ConfigTest {

    private String name;

    private String age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}

目前都是用到的springboot默认的配置文件,我们也可以自己指定配置文件
使用@PropertySource(“classpath:xxx.properties”),进行加载配置文件

以上就是springboot如何读取自定义属性的详细内容,更多关于springboot读取自定义属性的资料请关注我们其它相关文章!

(0)

相关推荐

  • springboot如何读取配置文件(application.yml)中的属性值

    在spring boot中,简单几步,读取配置文件(application.yml)中各种不同类型的属性值: 1.引入依赖: <!-- 支持 @ConfigurationProperties 注解 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId>

  • java springboot中如何读取配置文件的属性

    目录 配置文件 (1)使用注解@Value映射 (2)使用@ConfigurationProperties映射 (3)推荐使用:极简方式 @Bean和@ConfigurationProperties注解一起使用, @RequiredArgsConstructor注解实现自动注入 总结 我们知道在比较大型的项目的开发中,比较经常修改的属性我们一般都是不会在代码里面写死的,而是将其定义在配置文件中,之后如果修改的话,我们可以直接去配置文件中修改,那么在springboot的项目中,我们应该如何实现这

  • springboot如何读取自定义属性

    很多时候,我们开发当中,需要通过配置自己的属性信息来满足不同环境下的应用部署,因此需要springboot能够读取我们自定义的属性,常用的读取自定义属性有@Value和@ConfigurationProperties,下面分别做简单的介绍1.@Value 可以看到点击进去源码,表明当前注解,可以使用在属性.方法或者构造方法上,支持SPEL表达式和占位符注解方式,此标签通常是单个配置加载的数据例如在配置文件中,配置了name和age两个属性 lixl: person: name: lixl age

  • springboot如何读取自定义配置项

    我们springboot项目有自己默认的配置文件,一般地由application.yml和bootstrap.yml组成,前者是模块的配置,后者是微服务的配置,后台比前者先被框架加载. 我们有时需要自己定义配置,可能不是简单的字符串,它可能是一个对象,对象里有具体的配置段,它也是application.yml的一部分,你可以把自己的代码添加上,当然你也可以新建全新的文件. 例如,有一个配置由name和version组成,我们在application.yml里可以把它定义成project元素下面的

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

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

  • 在SpringBoot下读取自定义properties配置文件的方法

    SpringBoot工程默认读取application.properties配置文件.如果需要自定义properties文件,如何读取呢? 一.在resource中新建.properties文件 在resource目录下新建一个config文件夹,然后新建一个.properties文件放在该文件夹下.如图remote.properties所示 二.编写配置文件 remote.uploadFilesUrl=/resource/files/ remote.uploadPicUrl=/resource

  • SpringBoot如何读取配置文件参数并全局使用

    这篇文章主要介绍了SpringBoot如何读取配置文件参数并全局使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 前言: 读取配置文件参数的方法:@Value("${xx}")注解.但是@Value不能为static变量赋值,而且很多时候我们需要将参数放在一个地方统一管理,而不是每个类都赋值一次. 正文: 注意:一定要给类加上@Component 注解 application.xml test: app_id: 12345 app_

  • SpringBoot如何读取war包jar包和Resource资源

    这篇文章主要介绍了SpringBoot如何读取war包jar包和Resource资源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 场景描述 在开发过程中我们经常会碰到要在代码中获取资源文件的情况,而我在最近在SpringBoot项目中时碰到一个问题,就是在本地运行时,获取本地的xml资源文件是能够获取到的,但是项目打成war包jar包启动运行时,就会发生问题,报找不到资源文件的错误.然后经过寻找排查确定了是下面代码通过ClassLoader获

  • 浅谈SpringBoot主流读取配置文件三种方式

    读取配置SpringBoot配置文件三种方式 一.利用Bean注解中的Value(${})注解 @Data @Component public class ApplicationProperty { @Value("${application.name}") private String name; } 该方式可以自动读取当前配置文件appliation.yml  或者application.properties中的配置值 区别在于读取yml文件时候支持中文编码,peoperties需

  • Springboot 项目读取Resources目录下的文件(推荐)

    需求描述:企业开发过程中,经常需要将一些静态文本数据放到Resources目录下,项目启动时或者程序运行中,需要读取这些文件. 读取Resources目录下文件的方法 /** * @Description: 读取resources 目录下的文件 * @Author: ljj * @CreateDate: 2020/11/3 17:20 * @UpdateUser: * @UpdateDate: * @UpdateReakem * @param filePath * @Return: java.l

  • springboot如何读取application.yml文件

    现在开发主要使用微服务框架springboot,在springboot中经常遇到读取application.yml文件的情形. 一.概述 开发过程中经常遇到要读取application.yml文件中的属性值,本文总结几种读取的方式,供参考. 二.详述 我这里使用的是springboot-2.1.2.RELEASE版本,这里使用的是application.properties的配置方式,和使用application.yml的方式是一样的.下面是application.properties文件的内容

  • 详解SpringBoot注解读取配置文件的方式

    一.@Value读取application.properties配置文件中的值 application.properties配置文件 fileName=configName PropertiesConfig类文件 import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class PropertiesC

随机推荐