搜索
首页Javajava教程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

在java代码中读取:

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 省略
}

验证:

GET

http://localhost:8089/configuration/index

返回参数:

vip.userList[0].name=tian01
vip.userList[0].age=20
vip.userList[1].name=tian02
vip.userList[1].age=21

这类通常都是没有前缀,比较单一的配置项会采用这么读取。

如果有同一的前缀配置,那么我们可以使用下面这种方法。

🎜🎜ConfigurationProperties注解🎜🎜🎜🎜在application.properties配置文件配置项:🎜
public class User {
    private String name;
    private Integer age;
    
    //set get toString 省略
}
🎜在javadiam中读取:🎜
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 省略
}
🎜验证:🎜🎜🎜GET🎜🎜http://localhost:8089/preconfiguration/index🎜🎜🎜我们通常是把一类的配置项设置为前缀,统一处理,面向对象化。🎜🎜但,如果是读取多个的如何处理(数组类型)?🎜🎜我们可以采用下面这种方式。🎜

也是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中文网其他相关文章!

声明
本文转载于:Java后端技术全栈。如有侵权,请联系admin@php.cn删除
Spring Boot Actuator从未授权访问到getshell的示例分析Spring Boot Actuator从未授权访问到getshell的示例分析May 23, 2023 am 08:56 AM

前言部门大佬在某src上挖到了这个漏洞,是一个比较老的洞了,我觉得有点意思,就动手在本地搭了个环境测试一下。Actuator是springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在Actuator启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息,从而导致信息泄露甚至服务器被接管的事件发生。如上所示,actuator是springb

如何利用Spring Boot构建区块链应用和智能合约如何利用Spring Boot构建区块链应用和智能合约Jun 22, 2023 am 09:33 AM

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

使用Spring Boot和Apache ServiceMix构建ESB系统使用Spring Boot和Apache ServiceMix构建ESB系统Jun 22, 2023 pm 12:30 PM

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

基于Spring Boot和MyBatis Plus实现ORM映射基于Spring Boot和MyBatis Plus实现ORM映射Jun 22, 2023 pm 09:27 PM

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

基于Spring Boot的分布式数据缓存和存储系统基于Spring Boot的分布式数据缓存和存储系统Jun 22, 2023 am 09:48 AM

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

Spring Boot与NoSQL数据库的整合使用Spring Boot与NoSQL数据库的整合使用Jun 22, 2023 pm 10:34 PM

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

使用Spring Boot和JavaFX构建桌面应用程序使用Spring Boot和JavaFX构建桌面应用程序Jun 22, 2023 am 10:55 AM

随着技术的不断发展,我们现在可以使用不同的技术来构建桌面应用程序。而SpringBoot和JavaFX则是现在较为流行的选择之一。本文将重点介绍如何使用这两个框架来构建一个功能丰富的桌面应用程序。一、介绍SpringBoot和JavaFXSpringBoot是一个基于Spring框架的快速开发框架。它可以帮助开发者快速构建Web应用程序,同时提供一组开

Spring Boot的任务调度和定时任务实现方法Spring Boot的任务调度和定时任务实现方法Jun 22, 2023 pm 11:58 PM

SpringBoot是一款非常流行的Java开发框架,不仅具有快速开发的优势,而且还内置了很多实用的功能,其中,任务调度和定时任务就是其常用的功能之一。本文将探讨SpringBoot的任务调度和定时任务实现方法。一、SpringBoot任务调度简介SpringBoot任务调度(TaskScheduling)是指在特定的时间点或某个条件下,执行一些特

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境