首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在Spring Boot中读取application.properties

在Spring Boot中读取application.properties

作者头像
lyb-geek
发布于 2018-12-05 03:51:34
发布于 2018-12-05 03:51:34
5.5K00
代码可运行
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路
运行总次数:0
代码可运行

通过这篇简短的博客文章,我将与您分享一些可以从Spring Boot中的application.properties文件中读取应用程序属性的方法。 我将分享3种方式:

1、使用 Environment 对象 读取application.properties , 2、使用 @Value 注释 读取属性 。 3、使用@ConfigurationProperties 从application.properties文件中读取属性

创建Spring Boot项目时,您应该 在src / main / resources 文件夹中 创建 application.properties 文件 。 如果由于某种原因,在Spring Boot项目的src / main / resources文件夹中没有application.properties文件,则可以手动创建此文件。

使用Environment对象读application.properties

最有可能从application.properties文件中读取属性的最简单方法之一是自动装配Environment对象。 您需要做的就是:

1)使用@Autowired注释将Environment 对象注入Rest Controller或Service类,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Autowired
private Environment env;

2)用户getProperty(String key)方法获取特定属性的值 。 喜欢这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String keyValue = env.getProperty(key);    
String keyValue = env.getProperty(key);

假设我在application.properties文件中有这些属性:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app.title=Learning Spring Boot 
app.description=Working with properties file

我需要创建一个Web服务端点,它接受属性的键名作为请求参数并返回属性值。

这是我的 Rest Controller类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RestController
@RequestMapping("app")
public class AppController {

   @Autowired
   private Environment env;

   @GetMapping("/property")
   public String getPropertyValue(@RequestParam("key") String key)
   {
      String returnValue = "No value";

      String keyValue = env.getProperty(key);

      if( keyValue!= null && !keyValue.isEmpty())
      {
         returnValue = keyValue;
      }
      return returnValue;
   }
}

请注意,为了能够从application.properties文件中读取属性,我需要使用@Autowired注释来注入Environment对象。 然后我可以简单地调用它的getProperty(String key)方法来获取所请求属性的值。

使用@Value Annotation读取属性

另一种读取应用程序属性的非常简单的方法是使用@Value注释。 只需使用@Value注释对类字段进行注释,并提供要从application.properties文件和类字段变量中读取的属性的名称。

要读取 app.title 属性 的值, 请 使用@Value注释注释类字段,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Value("${app.title}")
private String appTitle;

假设我有以下application.properties文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app.title=Learning Spring Boot 
app.description=Working with properties file

下面是Rest Controller的一个示例,它使用@Value批注来读取app.title属性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RestController
@RequestMapping("app")

@Value("${app.title}")
private String appTitle;

@GetMapping("/value")
public String getValue()
      {
      return appTitle;
      }
}

这就是我需要做的一切。

使用@ConfigurationProperties读取应用程序属性

在Spring Boot应用程序中读取应用程序属性的另一种方法是使用@ConfigurationProperties。 为此,我们需要创建一个Plain Old Java Object,其中每个类字段与属性文件中的键名称相匹配。

例如,假设我们有相同的application.properties文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
app.title=Learning Spring Boot 
app.description=Working with properties file

因为每个属性名称都以 app 的前缀开头,所以 我们需要注释我们的Java Bean:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@ConfigurationProperties("app")

以下是使用@ConfigurationProperties批注注释的Java类的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Component
@ConfigurationProperties("app")
public class AppProperties {

   private String title;
   private String description;
   public String getTitle() {
      return title;
   }
   public void setTitle(String title) {
      this.title = title;
   }
   public String getDescription() {
      return description;
   }
   public void setDescription(String description) {
      this.description = description;
   }

}

要在Rest Controller或Service类中使用此类,我们只需使用@Autowired注释对其进行自动装配。

一旦我们有了AppProperties类的实例,我们就可以使用getter来获取存储在application.properties文件中的属性的值。

在Spring Boot应用程序中读取应用程序属性就是这三种非常简单的方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-10-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
application.yml 与 application.properties详解
Spring Boot 中的一个常见做法是使用外部配置来定义我们的属性。这允许我们在不同的环境中使用相同的应用程序代码。
jack.yang
2025/04/05
3230
application.properties详解
Spring Boot 中的一个常见做法是使用外部配置来定义我们的属性。这允许我们在不同的环境中使用相同的应用程序代码。
jack.yang
2025/04/05
2850
Spring Boot中的Properties
本文我们将会讨怎么在Spring Boot中使用Properties。使用Properties有两种方式,一种是java代码的注解,一种是xml文件的配置。本文将会主要关注java代码的注解。
程序那些事
2020/07/07
1.6K0
Spring Boot系列之配置读取
子曰:温故而知新,可以为师矣。周日还在学习的就真的是爱学习的人,周日大放送,这周的精彩文章推荐阅读:
猿天地
2018/07/25
1.6K0
005-Spring Boot配置分析-配置文件application、EnvironmentPostProcessor、Profiles
默认配置文件application.propertie或者application.yml,可同时存在
别先生
2019/01/03
2.1K0
springboot:读取application.yml文件
现在开发主要使用微服务框架springboot,在springboot中经常遇到读取application.yml文件的情形。
huofo
2022/03/17
3.5K0
springboot:读取application.yml文件
(最新 9000 字 )Spring Boot 配置特性解析
目前Spring Boot版本: 2.3.4.RELEASE,这更新的速度也是嗖嗖的了,随着新版本的发布,也一步步针对公司基础组件进行了升级改造,其中很重要的一块就是配置文件的更新(虽然目前已经全部使用了Apollo)。针对Spring Boot 新版本的配置文件也做了一次梳理,确实发现了以前没有注意到的点。
鲁大猿
2020/09/25
6580
(最新 9000 字 )Spring Boot 配置特性解析
重学SpringBoot3-@EnableConfigurationProperties注解
Spring Boot 提供了一种便捷的方式来管理和校验应用程序的配置,即通过类型安全的配置属性。@EnableConfigurationProperties 注解在这里扮演了重要的角色,它使得 Spring Boot 能够将外部配置文件中的属性绑定到强类型的 Java Beans 上。
CoderJia
2024/10/18
4900
重学SpringBoot3-@EnableConfigurationProperties注解
深入理解Spring Boot配置绑定及其实战应用
本文详细探讨了Spring Boot中配置绑定的核心概念,并结合实战示例,展示了如何在项目中有效地使用这些技术来管理和绑定配置属性。
小马哥学JAVA
2024/05/10
2630
Spring Boot(03):Spring Boot多环境配置,如何轻松实现开发、测试、生产环境切换?
环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE
bug菌
2023/09/04
1.7K0
Spring Boot(03):Spring Boot多环境配置,如何轻松实现开发、测试、生产环境切换?
Spring Boot 2.0 教程 - 配置详解
Spring Boot 可以通过properties文件,YAML文件,环境变量和命令行参数进行配置。属性值可以通过,@Value注解,Environment或者ConfigurationProperties注入到应用中。 配置的优先级如下:
代码拾遗
2018/07/24
7060
补习系列(10)-springboot 之配置读取
在早前的博客中曾经写过 Spring 程序通过 Bean 映射实现配置信息的读取。 在SpringBoot 框架中读取配置的方式变得非常多样,这导致读者在搜寻资料时反而容易迷糊。
美码师
2019/01/23
1.3K0
SpringBoot中读取配置的七种方法总结
@Value注解是最直接且常用的读取配置的方式。它可以将配置文件中的属性值注入到Spring管理的Bean的字段中。
公众号:码到三十五
2024/08/08
3760
第4章 零XML配置的Spring Boot Application小结
Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件、YAML 文件、环境变量和命令行参数来定义优先级不同的配置值。零XML配置的Spring Boot Application,是基于Spring JavaConfig。
一个会写诗的程序员
2018/08/20
1.2K0
6 种方式读取 Springboot 的配置,老鸟都这么玩(原理+实战)
从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一,但就是这么常用的功能,仍然有很多开发者在这个方面踩坑。
程序员小富
2023/06/16
16.8K1
Spring Boot:四大神器之Auto Configuration
Spring Boot非常简单容易上手,它隐藏了很多内容而不需要你去关心。但对于一个好的开发人员也许希望知道Spring Boot自动配置背后到底发生了什么?
Freedom123
2024/03/29
1.4K0
SpringBoot中的配置文件详解(yml、properties全局配置和自定义配置、@ConfigurationProperties与@Vuale使用、有趣的banner图配置)
全局配置文件能够对一些默认配置值进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径的/config,一般会选择resource目录。接下来,将针对这两种全局配置文件进行讲解∶
共饮一杯无
2022/11/28
16.2K0
SpringBoot中的配置文件详解(yml、properties全局配置和自定义配置、@ConfigurationProperties与@Vuale使用、有趣的banner图配置)
Spring Boot 配置文件 application.properties
在 Spring Boot 中,配置文件有两种不同的格式,一个是 properties ,另一个是 yaml 。
江南一点雨
2019/05/30
2K0
Springboot读取配置的10种方式
Spring Boot 读取配置文件的方式有很多,下面介绍 10 种常用方式以及相应的示例和解析。
疯狂的KK
2023/03/26
1.5K0
《Spring Boot 实战:从0到1》第3章 零XML配置的Spring Boot Application第3章 零XML配置的Spring Boot
Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件、YAML 文件、环境变量和命令行参数来定义优先级不同的配置值。
一个会写诗的程序员
2018/08/17
1.2K0
推荐阅读
相关推荐
application.yml 与 application.properties详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档