Spring Boot读取配置4种方式,建议收藏!
在Spring Boot项目中基本上都会涉及到读取配置文件内容,本文就来聊聊常见的读取配置文件的几种方式。
Value注解
在application.properties
配置文件配置项:application.properties
配置文件配置项:
name=tian
在java代码中读取:
/** * @author tianwc 公众号:java后端技术全栈、面试专栏 * @version 1.0.0 * @date 2023年07月02日 21:00 * 博客地址:<a href="http://woaijava.cc/">博客地址</a> */ @RestController @RequestMapping("/configuration") public class ConfigurationController { @Value("${name}") private String name; @GetMapping("/index") public String test() { return name; } }
验证:
GET
http://localhost:8089/configuration/index
返回参数:
tian
这类通常都是没有前缀,比较单一的配置项会采用这么读取。
如果有同一的前缀配置,那么我们可以使用下面这种方法。
ConfigurationProperties注解
在application.properties
user.userName=tian1 user.age=21
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** * @author tianwc 公众号:java后端技术全栈、面试专栏 * @version 1.0.0 * @date 2023年07月02日 21:07 * 博客地址:<a href="http://woaijava.cc/">博客地址</a> */ @Component @ConfigurationProperties(prefix = "user") public class PreConfiguration { private String userName; private Integer age; //set get 省略 }
GEThttp://localhost:8089/configuration/index返回参数:
vip.userList[0].name=tian01 vip.userList[0].age=20 vip.userList[1].name=tian02 vip.userList[1].age=21
application.properties
配置文件配置项:🎜public class User { private String name; private Integer age; //set get toString 省略 }
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.List; /** * @author tianwc 公众号:java后端技术全栈、面试专栏 * @version 1.0.0 * @date 2023年07月02日 21:24 * 博客地址:<a href="http://woaijava.cc/">博客地址</a> */ @Component @ConfigurationProperties(prefix = "vip") public class UserListConfiguration { private List<User> userList; // set get 省略 }
也是ConfigurationProperties注解
在application.properties
配置文件配置项:
vip.userList[0].name=tian01 vip.userList[0].age=20 vip.userList[1].name=tian02 vip.userList[1].age=21
定义一个User类:
public class User { private String name; private Integer age; //set get toString 省略 }
配置读取类:
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.List; /** * @author tianwc 公众号:java后端技术全栈、面试专栏 * @version 1.0.0 * @date 2023年07月02日 21:24 * 博客地址:<a href="http://woaijava.cc/">博客地址</a> */ @Component @ConfigurationProperties(prefix = "vip") public class UserListConfiguration { private List<User> userList; // set get 省略 }
如果我们自定义一个custom.properties
配置文件,那又该如何读取呢?
PropertySource注解
在application.properties
配置文件配置项:
realName=tian3
代码实现
@RestController @RequestMapping("/propertySource") @PropertySource("classpath:custom.properties") public class PropertySourceController { @Value("${realName}") private String realName; @GetMapping("/index") public String test() { return realName; } }
验证:
GET
http://localhost:8089/propertySource/index
返回参数:tian3
那么,问题又来了,我们可能会因为一个配置项需要改,或者是上线后发现配置项不对,这时候就需要重启服务了,为了避免这样重启服务,我们可以引入分布式配置中心。
分布式配置中心有很多实现方案,比如Nacos、Zookeeper、Qconf、disconf、Apache Commons Configuration、Spring Cloud Config等。
以上是Spring Boot读取配置4种方式,建议收藏!的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

我们在实际项目中,尽量规避分布式事务。但是,有些时候是真的需要做一些服务拆分从而会引出分布式事务问题。同时,分布式事务也是面试中市场被问,可以拿着这个案例练练手,面试就可以说上个123了。

随着全球化的发展,越来越多的网站和应用需要提供多语言支持和国际化功能。对于开发人员而言,实现这些功能并不是一件容易的事情,因为它需要考虑许多方面的问题,如语言的翻译、日期、时间和货币格式等等。但是,使用SpringBoot框架,我们可以轻松地实现多语言支持和国际化应用。首先,让我们了解一下SpringBoot提供的LocaleResolver接口。Loc

随着比特币等数字货币的兴起,区块链技术也逐渐成为热门话题。而智能合约,则可视为区块链技术的重要组成部分。SpringBoot作为一种流行的Java后端开发框架,也能够用来构建区块链应用和智能合约。本文将介绍如何利用SpringBoot搭建基于区块链技术的应用和智能合约。一、SpringBoot与区块链首先,我们需要了解一些与区块链相关的基本概念。区块链

随着大数据时代的到来,越来越多的企业开始了解和认识到大数据的价值,并将其运用到商业中。而随之而来的问题就是如何处理这些大流量的数据。在这种情况下,大数据处理应用程序成为了每个企业必须考虑的事情。而对于开发人员而言,如何使用SpringBoot构建一个高效的大数据处理应用程序也是一个非常重要的问题。SpringBoot是一个非常流行的Java框架,它可以让

随着现代企业越来越依赖于各种不同的应用程序和系统,企业集成变得愈发重要。企业服务总线(ESB)就是一种集成架构模式,通过将不同系统和应用程序连接在一起,提供通用的数据交换和消息路由服务,从而实现企业级应用程序集成。使用SpringBoot和ApacheServiceMix,我们可以轻松构建一个ESB系统,这篇文章将介绍如何实现。SpringBoot和A

随着互联网的不断发展和普及,数据的处理和存储需求也越来越大,如何高效且可靠地处理和存储数据成为了业界和研究人员的热门话题。基于SpringBoot的分布式数据缓存和存储系统是近年来备受关注的一种解决方案。什么是分布式数据缓存和存储系统?分布式数据缓存和存储系统是指通过多个节点(服务器)分布式地存储数据,提高了数据的安全性和可靠性,同时也可以提升数据的处理性

在Javaweb应用开发过程中,ORM(Object-RelationalMapping)映射技术用来将数据库中的关系型数据映射到Java对象中,方便开发者进行数据访问和操作。SpringBoot作为目前最流行的Javaweb开发框架之一,已经提供了集成MyBatis的方式,而MyBatisPlus则是在MyBatis的基础上扩展的一种ORM框架。

随着互联网的发展,大数据分析和实时信息处理成为了企业的一个重要需求。为了满足这样的需求,传统的关系型数据库已经不再满足业务和技术发展的需要。相反,使用NoSQL数据库已经成为了一个重要的选择。在这篇文章中,我们将讨论SpringBoot与NoSQL数据库的整合使用,以实现现代应用程序的开发和部署。什么是NoSQL数据库?NoSQL是notonlySQL
