@ConfigurationProperties加载外部配置方式

@ConfigurationProperties注解是Spring Boot中用来绑定外部属性配置到JavaBean上的注解。该注解可以将外部属性文件中的属性值通过类型安全的方式注入到Spring应用上下文中的Bean中。以下是详细的攻略:

第一步:添加依赖

首先需要添加对spring-boot-configuration-processor依赖,用于生成配置元数据。在Maven中添加以下依赖:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <optional>true</optional>
</dependency>

第二步:创建配置类

创建一个Java类,并在该类上添加@Configuration和@ConfigurationProperties注解:

@Configuration
@ConfigurationProperties(prefix = "app")
public class AppConfig {
    private String name;
    private int version;
    // 省略getter和setter方法
}

prefix属性用于指定属性的前缀,上述例子会绑定外部配置文件中的app.nameapp.version两个属性值。

同时需要注意的是,这个AppConfig类需要被Spring容器所管理,可以通过使用@Component、@Service等注解进行标记。

第三步:创建外部配置文件

创建一个配置文件,文件名一般为application.properties,用于存放属性配置。

例如:在application.properties文件中添加以下配置:

app.name=MyApp
app.version=1

这样就可以在应用启动时加载这些属性到AppConfig类中。

第四步:读取配置

通过@Autowired注解将这个AppConfig配置类自动注入到其他的Bean中,可以读取其中的属性值。

例如:在一个Controller中可以通过如下方式读取配置:

@RestController
public class MyController {
    @Autowired
    private AppConfig config;

    @GetMapping("/config")
    public String getConfig() {
        return "Name: " + config.getName() + ", Version: " + config.getVersion();
    }
}

这样就能在访问"/config"时,得到响应"Name: MyApp, Version: 1"。

示例说明

示例一

创建一个类来保存SFTP连接的相关配置,例如:

@Configuration
@ConfigurationProperties(prefix = "sftp")
public class SftpProperties {
    private String host;
    private int port;
    private String username;
    private String password;
    private String remoteDirectory;

    // getter和setter方法
}

application.properties文件中添加以下配置:

sftp.host=192.168.1.100
sftp.port=22
sftp.username=admin
sftp.password=123456
sftp.remote-directory=/upload/

通过在其他Bean中注入这个SftpProperties类,就可以获得SFTP的连接相关信息。

示例二

创建一个类来保存数据库连接的相关配置,例如:

@Configuration
@ConfigurationProperties(prefix = "database")
public class DatabaseProperties {
    private String url;
    private String username;
    private String password;

    // getter和setter方法
}

application.properties文件中添加以下配置:

database.url=jdbc:mysql://localhost:3306/test
database.username=root
database.password=123456

通过在其他Bean中注入这个DatabaseProperties类,就可以获得数据库连接的相关信息,用于建立数据库连接。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:@ConfigurationProperties加载外部配置方式 - Python技术站

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

相关文章

  • Mybatis 如何在配置文件中给实体类起别名

    Mybatis 如何在配置文件中给实体类起别名 步骤一:在配置文件中指定别名 在 Mybatis 的配置文件中,可以通过<typeAliases>元素来为实体类指定别名。具体操作如下: 打开 Mybatis 的配置文件(通常是 mybatis-config.xml)。 在 <configuration> 标签内部添加 <type…

    other 2023年6月28日
    00
  • 办公室电脑数据防泄密、企业重要文档防复制、商业机密防泄漏解决方案

    办公室电脑数据防泄密解决方案 1. 硬件加密 如果办公室电脑中存储了重要的数据,我们建议用硬件加密来保护数据安全。常见的硬件加密方案有: 加密外置硬盘:可以选择带有硬件加解密功能的移动硬盘,例如西部数据的WD My Passport硬盘。该硬盘具有密码保护、硬件加密等功能,确保数据安全。 加密USB存储设备:有些USB存储设备可以使用密码来保护数据,例如金士…

    other 2023年6月27日
    00
  • JS封装的三级联动菜单(使用时只需要一行js代码)

    为了实现“JS封装的三级联动菜单”,我们需要使用以下技术: HTML和CSS JavaScript编程语言 Ajax技术 下面就介绍如何实现这个菜单: 1. 编写HTML和CSS 首先我们需编写一个select菜单,选择项分别是省份、城市、区域,菜单与菜单之间有“省份”、“城市”、“区域”的文字提示。 HTML代码如下: <div class=&quo…

    other 2023年6月25日
    00
  • c#可以创建任意控件的拖动方法

    标准的拖放流程 首先,需要在窗体上放置一个容器控件,比如Panel或者GroupBox,在这个容器控件上,就可以进行拖放了,具体的代码流程如下: private void panel1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(typeof(Button))) …

    other 2023年6月26日
    00
  • Boolean operations between triangle meshes

    Boolean operations between triangle meshes的完整攻略 Boolean operations between triangle meshes是计算机图形学中的一个重要问题,它可以用于模型编辑、CAD、虚拟现实等领域。本文将为您提供Boolean operations between triangle meshes的完整…

    other 2023年5月6日
    00
  • linux shell awk获得外部变量(变量传值)简介

    当我们编写Linux shell脚本时,有时需要从外部获取变量并在脚本中使用。而awk是Linux环境下非常常用的文本处理工具之一,也可以在其中使用外部变量。本攻略将详细讲解如何在awk中获得外部变量。 准备工作 在学习如何在awk中获取外部变量之前,我们需要先了解一下-v选项。-v选项可以向awk脚本中传递一个变量,并将该变量赋值为一个名为awk的变量。 …

    other 2023年6月27日
    00
  • PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2

    “PHP和MysqlWeb应用开发核心技术”一书是一本非常实用的PHP和MySQL开发参考资料,其中第一部分Php基础第三章讲解了代码组织和重用的相关知识,下面将为大家详细讲解具体攻略。 代码组织和重用 文件包含 在PHP中,可以通过include和require语句将一个PHP文件引入到另一个PHP文件中。使用include或require语句可以将一个P…

    other 2023年6月26日
    00
  • 尝试在ue4上使用python

    以下是关于“尝试在UE4上使用Python”的完整攻略,包括基本知识和两个示例。 基本知识 UE4是一款流行的游戏引擎,它支持使用脚本进行游戏开发。在UE4中,可以使用Python脚本进行游戏逻辑编写、自动化任务、数据等操作。 UE4使用的Python版本是2.7,因此需要使用Python 2.7的语法和库进行开发。 解决方案 以下是解决“尝试在UE4上使用…

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