springboot如何读取自定义properties并注入到bean中

在SpringBoot中,可以使用@ConfigurationProperties注解来读取自定义properties,然后将其注入到bean中。

具体步骤如下:

  1. 定义自定义properties文件,在application.properties中定义的属性值,是可以被@ConfigurationProperties读取到的。可以在application.properties文件中添加自定义属性,如:
my.config.name=hello
my.config.age=18
  1. 创建一个@ConfigurationProperties注解的类,用于接收自定义属性值。
@ConfigurationProperties(prefix = "my.config")
public class MyConfig {
    private String name;
    private int age;
    // getter、setter方法省略
}

在上面的代码中,@ConfigurationProperties(prefix = "my.config")指定了自定义属性的前缀为“my.config”,这个前缀必须和application.properties中前缀相同。

  1. 创建一个@Configuration注解的配置类,并将MyConfig类注入到容器中。
@Configuration
public class MyConfigConfig {
    @Bean
    @ConfigurationProperties(prefix = "my.config")
    public MyConfig myConfig() {
        return new MyConfig();
    }
}

上面的配置类利用@Bean注解将MyConfig注入到Spring容器中,并且使用@ConfigurationProperties注解指定读取属性文件的前缀为“my.config”。这样就会自动将属性文件的值注入到MyConfig类中。

  1. 在其他类中使用MyConfig类
@Component
public class MyService {
    @Autowired
    private MyConfig myConfig;

    // 访问myConfig的属性值
    public void printConfig() {
        System.out.println("name:" + myConfig.getName() + ",age:" + myConfig.getAge());
    }
}

上面的代码中,使用@Autowired注解将MyConfig类注入到MyService中,然后就可以通过myConfig访问到自定义属性的值了。

示例一:读取redis相关的属性

spring.redis.host=127.0.0.1
spring.redis.port=6379
@Configuration
@ConfigurationProperties(prefix = "spring.redis")
@Component
public class RedisConfig {
    private String host;
    private int port;
    // getter、setter省略
}

示例二:读取自定义的Kafka属性

kafka.bootstrap.servers=127.0.0.1:9092
kafka.topic=myTopic
@Configuration
@ConfigurationProperties(prefix = "kafka")
@Component
public class KafkaConfig {
    private String bootstrapServers;
    private String topic;
    // getter、setter省略
}

需要注意的是,为了读取自定义的properties文件内容,需要在application.properties中指定扫描自定义properties文件的路径,如:

spring.config.location=classpath:/custom.properties

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot如何读取自定义properties并注入到bean中 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • ip和端口的相关检测

    IP和端口的相关检测 在网络通信中,我们经常需要检测IP和端口的可用性,以确保网络连接的稳定性和安全性。以下是IP和端口的相关检测的完整攻略。 步骤 以下是IP和端口的相关检测的步骤: 使用ping命令检测IP的可用性。 使用telnet命令检测端口的可用性。 示例 以下是两个示例,演示如何使用ping和telnet命令检测IP和端口的可用性。 示例1:使用…

    other 2023年5月6日
    00
  • css类选择器的使用方法详解

    CSS类选择器的使用方法详解 1. 什么是类选择器? CSS类选择器是一种用于选中具有相同类名的元素的选择器。它以.开头,后跟类名,可以选择多个元素并对其应用相同的样式。 2. 如何使用类选择器? 2.1 在HTML中定义类名 在HTML标签的class属性中定义类名,并为多个元素分配相同的类名。例如: <p class="highlight…

    other 2023年6月28日
    00
  • Lua中字符串(string)浅析

    Lua中字符串(string)浅析 在Lua中,字符串(string)是一种基本数据类型,用于表示和处理文本数据。本文将对Lua中字符串的定义、常见操作、转义字符、长字符串等内容进行分析并结合示例进行说明。 字符串的定义 在Lua中,字符串字面量可以用引号(单引号或双引号)来表示,例如: local str1 = "hello, world&quo…

    other 2023年6月20日
    00
  • 顶点着色器详解(vertexshaders)

    顶点着色器详解 在图形学中,顶点着色器是一种重要的着色器类型,它用于控制渲染流水线中的顶点处理过程。本文将详细介绍顶点着色器的概念、作用、代码结构等方面的内容。 顶点着色器的概念 顶点着色器是在图形处理管线中的一个可编程流程,它的作用是将输入的几何数据转换成另一种形式,一般是3D空间中的顶点坐标。顶点着色器可以定义顶点的位置、颜色、法向量以及纹理坐标等属性,…

    其他 2023年3月29日
    00
  • 3.live555源码分析—延时队列

    3.live555源码分析—延时队列 在live555的源码中,有一个名为”DelayedTaskQueue”的类,被用作事件调度系统中的延时事件队列。 它由系统上的多个任务和回调组成,负责在需要时自动调用这些任务和回调。 在本文中,我们将深入研究live555的源码实现,以便更好地理解延时队列的原理和功能。 1. DelayedTaskQueue类 D…

    其他 2023年3月28日
    00
  • 微信小程序实现简易计算器

    result: ‘0’, operator: ”, operand1: ”, operand2: ” }, onLoad: function () { this.setData({ result: ‘0’, operator: ”, operand1: ”, operand2: ” }); }, handleNumberClick: functi…

    other 2023年8月6日
    00
  • 解析Linux内核与设备树的编译和烧写

    解析Linux内核与设备树的编译和烧写的完整攻略如下: 1. 编译内核 1.1 下载内核源码 首先,需要从官网或者Github等代码托管网站上下载所需的内核代码。以Linux的官网(https://www.kernel.org/)为例,进入网站后点击”Get started”按钮,下拉菜单中选择”Download kernel”,选择需要的版本和压缩方式下载…

    other 2023年6月26日
    00
  • 仙剑6游戏停止响应解决方法介绍

    仙剑6游戏停止响应解决方法介绍 问题描述 在玩仙剑6游戏时,有时会出现游戏突然停止响应的问题,导致玩家无法正常游戏,需要手动关闭程序。这个问题非常影响游戏体验,那么该如何解决呢? 解决方法 方法一:升级显卡驱动 游戏停止响应的原因可能是由于显卡驱动版本过低造成的,更新显卡驱动可以解决这个问题。 具体步骤如下: 打开计算机的“设备管理器”(可以在“控制面板”中…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部