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

yizhihongxing

在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日

相关文章

  • centos安装mysql5.7详细教程

    以下是在CentOS系统中安装MySQL 5.7的完整攻略: 步骤1:添加MySQL Yum Repository 在CentOS系统中,可以通过添加MySQL Yum Repository来安装MySQL 5.7。具体步骤如下: 打开终端并以root用户身份登录。 执行以下命令来下载MySQL Yum Repository: wget https://de…

    other 2023年5月8日
    00
  • Win11 22H2最新正式版(版本Build 22621.1702)官方ISO镜像:免费下载

    Win11 22H2最新正式版(版本Build 22621.1702)官方ISO镜像:免费下载攻略 Win11 22H2最新正式版(版本Build 22621.1702)官方ISO镜像是Windows 11的最新版本,本攻略将详细介绍如何免费下载该镜像。请按照以下步骤进行操作: 步骤一:访问官方网站 首先,打开你的浏览器并访问Windows 11的官方网站。…

    other 2023年8月3日
    00
  • Linux chroot命令用法详解

    Linux chroot命令用法详解 什么是chroot chroot是一种操作系统安全机制,它可以让一个进程以指定的目录作为”/”来运行。这个操作系统的根(/)被移动到了一个新的目录下。由于进程运行时自认为是在根目录下,因此在这个chroot环境下,进程只能访问到该目录下的文件和设备节点,而不能访问到其他的系统资源。 chroot的用途 为系统实现多用户的…

    other 2023年6月27日
    00
  • matlab语谱图(时频图)绘制与分析

    MATLAB语谱图(时频图)绘制与分析 简介 语谱图(时频图)是用于分析随时间变化的信号的谱表示。它可以显示信号随时间的变化和不同频率分量的能量。在 MATLAB 中,我们可以使用 Signal Processing Toolbox 中的函数来绘制语谱图并进行分析。 准备工作 在绘制语谱图之前,需要先准备一个待处理的信号。一般情况下,这个信号可以是声音、图像…

    其他 2023年3月29日
    00
  • 代码质量检测-sonar

    代码质量检测-sonar 在软件开发过程中,代码质量一直是开发人员和项目经理非常注重的问题。而代码质量检测则成为了一个必要的过程,以确保代码的可读性、可维护性、可靠性等方面的优化。 在众多的代码检测工具中,SonarQube(以下简称sonar)是其中的一款非常受欢迎的工具。该工具不仅支持多种编程语言,而且提供了丰富的检测规则,帮助开发人员根据不同项目的需求…

    其他 2023年3月28日
    00
  • layui.use模块外部使用其内部定义的js封装函数方法

    在使用layui时,我们可以使用 layui.use 方法来加载模块并使用模块内部的方法。如果需要在模块外部使用模块内部定义的方法,我们可以将该方法封装并暴露给外部使用。 下面是利用 layui.extend 方法和 exports 关键字封装模块内部方法的示例: Step 1:在模块中定义方法 我们在模块中定义一个名为 myMethod 的方法并在模块内部…

    other 2023年6月25日
    00
  • pgsql实现绝对值

    当然,我很乐意为您提供有关“PostgreSQL实现绝对值”的完整攻略。以下是详细的步骤和两个示例: 1 ABS函数 在 PostgreSQL 中,可以使用 ABS 函数来计算一个数的绝对值。ABS 函数的语法如下: ABS(numeric) 其中,numeric 是要计算绝对值的数值。 以下是一个使用 ABS 函数的示例: SELECT ABS(-10);…

    other 2023年5月6日
    00
  • SVG 入门——理解viewport,viewbox,preserveAspectRatio

    SVG(Scalable Vector Graphics)是一种基于XML的矢量图形格式,它可以在Web页面中实现高质量的图形和动画效果。在本文中,我们将介绍SVG的三个重要概念:viewport、viewbox和preserveAspectRatio,并提供两个示例说明。 viewport viewport是SVG中的一个重要概念,它定义了SVG图形在浏览…

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