SpringBoot项目获取统一前缀配置及获取非确定名称配置方法

 更新时间:2024年09月09日 11:32:22   作者:gooluke  
在SpringBoot项目中,使用@ConfigurationProperties注解可获取统一前缀的配置,具体做法是创建配置类,使用prefix属性指定配置的前缀,本文给大家介绍SpringBoot项目获取统一前缀配置以及获取非确定名称配置方法,感兴趣的朋友跟随小编一起看看吧

SpringBoot项目获取统一前缀配置以及获取非确定名称配置

在SpringBoot项目中,我们经常看到统一前缀的配置,我们该怎么统一获取
my.config.a.name=xiaoming
my.config.a.age=18
my.config.a.address=guangdong

my.config.b.name=xiaomli
my.config.b.age=20
my.config.b.address=shandong

方式一:使用对应的配置类并结合注解:@ConfigurationProperties(prefix = “xxx.xxx”)

配置文件:

my.config.name=xiaoming
my.config.age=18
my.config.address=guangdong

对应的配置类:MyProperties

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
 * @author gooluke
 */
@Component
@ConfigurationProperties(prefix = "my.config")
@Getter
@Setter
public class MyProperties {
    private String name;
    private int age;
    private String address;
}

获取配置类,打印属性:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/test")
public class TestController {
    @Autowired
    private MyProperties myProperties;
    @RequestMapping("/show")
    public void show() {
        System.out.println("myProperties.getName() = " + myProperties.getName());
        System.out.println("myProperties.getAge() = " + myProperties.getAge());
        System.out.println("myProperties.getAddress() = " + myProperties.getAddress());
    }
}

打印结果:

方式二:获取统一前缀,而后面非确定字段名的配置

配置文件:

my.config.a.name=xiaoming
my.config.a.age=18
my.config.a.address=guangdong
my.config.b.name=xiaomli
my.config.b.age=20
my.config.b.address=shandong

对应的配置类:

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Map;
/**
 * @author gooluke
 */
@Component
@ConfigurationProperties(prefix = "my")
@Getter
@Setter
public class MyProperties2 {
	//这里的config得对应上my.config.xx里的config
    private Map<String, UserInfoConfig> config;
    @Setter
    @Getter
    public static class UserInfoConfig {
        private String name;
        private Integer age;
        private String address;
    }
}

获取配置类,打印属性:

@Autowired
private MyProperties2 myProperties2;
@RequestMapping("/show2")
public void show2() {
    Map<String, MyProperties2.UserInfoConfig> config = myProperties2.getConfig();
    config.forEach((user, userInfoConfig) -> {
        System.out.println("user = " + user);
        System.out.println("userInfoConfig.getName() = " + userInfoConfig.getName());
        System.out.println("userInfoConfig.getAge() = " + userInfoConfig.getAge());
        System.out.println("userInfoConfig.getAddress() = " + userInfoConfig.getAddress());
    });
}

打印结果:

到此这篇关于SpringBoot项目获取统一前缀配置以及获取非确定名称配置的文章就介绍到这了,更多相关SpringBoot获取统一前缀配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于SpringBoot+JWT 实现Token登录认证与登录人信息查询功能

    基于SpringBoot+JWT 实现Token登录认证与登录人信息查询功能

    本文给大家介绍基于SpringBoot+JWT实现Token登录认证与登录人信息查询功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值
    2026-03-03
  • java poi读取excel操作示例(2个代码)

    java poi读取excel操作示例(2个代码)

    这篇文章主要介绍了使用POI读取EXCEL文件的方法,代码大家可以参考使用
    2013-12-12
  • SpringBoot中的@ConditionalOnMissingBean注解使用详解

    SpringBoot中的@ConditionalOnMissingBean注解使用详解

    这篇文章主要介绍了SpringBoot中的@ConditionalOnMissingBean注解使用详解,@ConditionalOnMissingBean作用在@Bean定义上,也就是说在容器加载它作用的Bean时,检查容器中是否存在目标类型,需要的朋友可以参考下
    2024-01-01
  • Java网络通信中ServerSocket的设计优化方案

    Java网络通信中ServerSocket的设计优化方案

    今天小编就为大家分享一篇关于Java网络通信中ServerSocket的设计优化方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • Java多线程之多种锁和阻塞队列

    Java多线程之多种锁和阻塞队列

    今天带大家学习的是Java多线程的相关知识,文章围绕着java多种锁和阻塞队列展开,文中有非常详细的介绍,需要的朋友可以参考下
    2021-06-06
  • java获取文件路径所有方式的详细介绍

    java获取文件路径所有方式的详细介绍

    在Java编程中我们经常需要获取文件的路径,以便对文件进行读取、写入或其他操作,这篇文章主要介绍了java获取文件路径所有方式的相关资料,需要的朋友可以参考下
    2025-08-08
  • SpringBoot应用部署于外置Tomcat容器的方法

    SpringBoot应用部署于外置Tomcat容器的方法

    这篇文章主要介绍了SpringBoot应用部署于外置Tomcat容器的方法,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • 详解java 拼音首字母搜索内容功能的示例

    详解java 拼音首字母搜索内容功能的示例

    这篇文章主要介绍了详解java 拼音首字母搜索内容功能的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java使用阻塞队列BlockingQueue实现生产者消费者的方法

    Java使用阻塞队列BlockingQueue实现生产者消费者的方法

    BlockingQueue是一个支持阻塞插入和移除操作的队列,常用于多线程环境下的生产者和消费者场景,文章介绍了阻塞队列BlockingQueue的概念和其在生产者消费者模式中的应用,提供了一个简单的示例,展示了如何使用ArrayBlockingQueue来实现生产者消费者模式
    2024-11-11
  • SpringBoot之Java配置的实现

    SpringBoot之Java配置的实现

    这篇文章主要介绍了SpringBoot之Java配置的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01

最新评论