`
zk_chs
  • 浏览: 215589 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

spring boot中自定义properties文件并获取内容

 
阅读更多

最近项目中使用到了spring boot,这次带来点关于spring boot中properties文件的使用方法

 

首先你可以定义一个properties文件,如下所示:

// 文件名可以自行定义,这里名为uploaddefine.properties
upload.image[JPG]=.jpg
upload.image[PNG]=.png
upload.office[CSV]=.csv
upload.office[EXCEL]=.excel
upload.text[txt]=.txt
upload.text[epub]=.epub

在这个文件中,我们定义了三个大类,分别为image、office、text

我们的目标是能够让程序自动读取我们定义的文件内容,下面是具体实现。

 

首先,在类上要表明的注解为:

@Configuration
@ConfigurationProperties(prefix = "upload")
@PropertySource("classpath:uploaddefine.properties")
public class UploadDefineConfig {
      omitted......
}

 这样一来就能是程序自动读取我们的配置文件,

@ConfigurationProperties(prefix = "upload"):读取前缀为 upload 的内容

@PropertySource("classpath:uploaddefine.properties"):定义了要读取的properties文件的位置

 

接下来就需要将内容读到我们事先定义好了的集合中了:

public static Map<String, String> image = new HashMap<>();
public static Map<String, String> office = new HashMap<>();
public static Map<String, String> text = new HashMap<>();

//注意需要添加get/set方法,并且这两个方法不能为static 

我们将Map定义为了static是为了方便使用,你也可以使用非静态形式的。

 

请注意,我们将每一个Map对象的名字定义成了properties中prefix之后的名字,只有这样才能够让程序自动将properties文件的内容添加到我们的Map对象之中。

 

此时,我们的自定义properties文件就大功告成了!快点来试一下吧!

我们通过一个http请求来获取这些内容,下面是返回的结果:

{
    "image": {
        "JPG": ".jpg",
        "PNG": ".png"
    },
    "office": {
        "EXCEL": ".excel",
        "CSV": ".csv"
    },
    "text": {
        "txt": ".txt",
        "epub": ".epub"
    }
}

 可以看到我们的内容已经成功的被读取出来了,很简单吧

 

如果你不想用这种K-V形式,而是直接一个List<String>获取所有的值的话,也很简单

只要在properties中这样定义即可:

my.servers[0]=127.0.0.1:8080
my.servers[1]=127.0.0.1:8081
my.servers[2]=127.0.0.1:8082

// 在class文件中,则需要这样
public static List<String> servers = new ArrayList<>();

 

对于中小型的项目,十分推荐spring boot,远离配置地狱

分享到:
评论
2 楼 thbcd 2017-05-16  
PropertySource注解是Spring框架本来就有的 不关Boot的事 再说既然用了Boot 那为什么不把所有配置都写到application.yml里边呢
1 楼 k88520 2016-11-25  
适用于1.4.0以下的版本

相关推荐

    详解spring boot 使用application.properties 进行外部配置

    使用配置文件之后,Spring Boot 启动时,会自动把配置信息读取到 Spring 容器中,并覆盖 Spring Boot 的默认配置。 读取和设置配置信息 那么,我们怎么来读取和设置这些配置信息呢?有四种方式: 1. 通过命令行来...

    Spring Boot自定义配置属性源(PropertySource)

    Spring Boot的自定义配置属性源(PropertySource)是框架中一个强大的特性,它允许开发者引入额外的配置文件或从各种来源获取配置,以满足不同环境的特定需求。配置覆盖是解决多环境配置问题的一种常见策略,它允许...

    spring boot微服务自定义starter原理详解

    在本文中,我们将详细介绍 Spring Boot 微服务自定义 Starter 的原理,并通过示例代码来演示其实现过程。 一、 Spring Boot 微服务架构下的 Starter 机制 在 Spring Boot 应用程序中,Starter 机制是指通过依赖...

    Spring Boot整合Spring Batch,实现批处理

    通过查看这些文件,你可以学习如何将批处理逻辑集成到Spring Boot应用中,并理解如何配置和运行批处理作业。 总的来说,Spring Boot与Spring Batch的结合为开发批处理应用提供了一种强大而灵活的解决方案。通过学习...

    从零开始学Spring Boot

    1.28 Spring Boot使用自定义的properties 1.29 改变自动扫描的包 1.30 Spring Boot Junit单元测试 1.31 SpringBoot启动时的Banner设置 1.32 Spring boot 文件上传(多文件上传) 1.33 导入时如何定制spring-boot依赖...

    spring-boot自定义starter的源码示例

    在Spring Boot生态系统中,自定义Starter是一种强大的方式来封装和重用代码,使得其他开发者可以轻松地在他们的项目中引入特定的功能或服务。本文将深入探讨如何通过源码分析来创建一个自定义的Spring Boot Starter...

    spring boot装载自定义yml文件

    这样,Spring Boot就能识别并解析这些自定义YAML配置文件中的属性。 Spring Boot提供四种主要的事件监听器接口,分别是: 1. `ApplicationStartedEvent`:在Spring Boot应用启动后触发。 2. `...

    spring-boot 中文指南

    5. **YAML/Properties配置**:Spring Boot支持使用`application.yml`或`application.properties`文件进行配置,YAML提供了更友好的层次结构,而Properties则更接近Java的属性格式。 6. **Spring Data**:Spring ...

    Spring Boot 学习笔记完整教程.pdf

    - **读取系统环境变量和自定义 properties 文件**:Spring Boot 支持通过 @Value 注解读取系统环境变量和自定义 properties 文件。 - **自定义包扫描和启动 Banner**:可以通过配置改变 Spring Boot 应用默认的包...

    Spring-Boot-Demo

    本文将深入探讨如何在Spring Boot项目中整合Mybatis,并利用Druid数据库连接池进行性能监控。 首先,我们要理解Spring Boot的核心理念——约定优于配置。在Spring Boot项目中,我们不再需要手动编写大量的XML配置...

    spring-boot中文参考指南

    - **文档内容**:本文档主要介绍了如何使用Spring Boot快速搭建和部署应用程序,并提供了详细的指导和实例。 - **获取帮助**:提供官方文档、论坛、社区等途径获取技术支持。 - **第一步**:从环境配置到创建基本的...

    Spring boot中文教程(Spring Boot Reference Guide 1.3.0.BUILD)

    为了更好地适应不同的部署环境,Spring Boot提供了多种配置特性,包括外化配置、配置随机值、访问命令行属性、使用YAML代替Properties文件、特定的Profile属性、属性占位符等。YAML是一种标记语言,它易于阅读,适用...

    SpringBoot获取yml和properties配置文件的内容

    总的来说,Spring Boot通过`@ConfigurationProperties`和`@Component`注解使得从`properties`或`yml`配置文件中获取和使用配置变得非常简单。开发者只需创建一个Java类,声明属性,并让Spring Boot自动绑定配置,...

    Spring Boot教程.pdf

    配置文件是 Spring Boot 中的一个核心概念,通过配置文件,我们可以对应用程序的行为和配置进行自定义。 Spring Boot 支持多种配置文件格式,包括 properties、YAML、XML 等。 在配置文件中,我们可以配置应用程序...

    Spring Boot读取配置文件常用方式

    在Spring Boot应用中,配置文件的管理是至关重要的,它允许开发者灵活地配置应用程序的行为,而无需修改代码。Spring Boot提供了多种方式来读取和使用这些配置文件,使其更加便捷和高效。以下将详细介绍Spring Boot...

    spring boot中的properties参数配置详解

    ### 自定义Properties文件 在实际项目中,我们经常需要自定义一些属性以适应不同的环境配置。这时,你可以创建自定义的properties文件。例如,创建一个`custom.properties`文件,并在其中定义一些自定义的参数: `...

    spring boot面试题及答案.docx

    Spring Boot中有两个重要的配置文件:`application.properties` 或 `application.yml` 和 `bootstrap.properties` 或 `bootstrap.yml`。 - **application 配置文件**:主要用于Spring Boot项目的自动化配置,定义...

    Demo project for Spring Boot

    Spring Boot默认使用`application.properties`或`application.yml`作为主要的配置文件。这些文件可以用来覆盖Spring Boot的自动配置,或者添加自定义的配置项。 **5. 健康检查与Actuator** Spring Boot提供了...

    Spring Boot源码(spring-boot-2.6.2.tar.gz)

    Spring Boot还支持多种外部配置方式,如application.properties或YAML文件、环境变量、命令行参数等。`ConfigFileApplicationListener`和`EnvironmentPostProcessor`接口在源码中扮演着读取和处理这些配置的关键角色...

Global site tag (gtag.js) - Google Analytics