springboot中获取配置文件中属性值的几种方式

目录

    • 第一章、使用@Value注解
    • 第二章、使用@PropertySource注解
    • 第三章、使用@Configurationproperties注解
    • 第四章、使用Java Properties类
    • 第五章、使用Environment接口

友情提醒:

先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。有用记得关注

第一章、使用@Value注解

①@Value注解用于获取配置文件中的属性定义并绑定到Java Bean或属性中。在核心配置文件applicatin.properties中,添加两个自定义配置项school.name和school.website。
在这里插入图片描述

②在SpringBootController中定义属性,并使用@Value注解或者自定义配置值,并对其方法进行测试

package com.example.springboot.web;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class SpringBootController {@Value("${school.name}")private String schoolName;@Value("${school.websit}")private String schoolWebsit;@RequestMapping(value = "/springBoot/first")@ResponseBodypublic String say() {return schoolName + "------" + schoolWebsit;}
}

③访问浏览器成功,说明成功通过@value读取配置的属性值
在这里插入图片描述

第二章、使用@PropertySource注解

@PropertySource(“classpath:coremail.properties”)是指定配置文件位置的注解。Spring 可以在类路径下找到并加载这个coremail.properties属性文件。需要再在属性上面搭配@value注解使用其中定义的属性值。
在这里插入图片描述
或者这样
在这里插入图片描述

第三章、使用@Configurationproperties注解

@Configurationproperties(prefix=”xxx”)prefix的作用是区分同名配置,如果不指定,那么会去配置文件中寻找与该类的属性名一致的配置文件。
prefix怎么使用呢?
在生产环境配置文件applicatin-product.properties中,有自定义的三个school前缀的配置项
在这里插入图片描述

在核心配置文件applicatin.properties中激活生产环境,这里的product对应文件名application-produc的横杠后面的produc
在这里插入图片描述
当指定prefix之后,就不需要再在属性上面搭配@value注解使用,因为当指定前缀school之后,属性就会自动注入
在这里插入图片描述

第四章、使用Java Properties类

Properties prop = new Properties();
try (InputStream input = new FileInputStream("config.properties")) {prop.load(input);String dbUrl = prop.getProperty("db.url");String dbUser = prop.getProperty("db.user");String dbPassword = prop.getProperty("db.password");// 使用读取到的属性进行后续操作
} catch (IOException ex) {ex.printStackTrace();
}

第五章、使用Environment接口

配置文件如图:
在这里插入图片描述

获取配置文件中的属性值:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;@Component
public class MyComponent {public static String Value1 ;public static String Value2 ;@Autowiredprivate Environment environment;public void getPropertyFromEnvironment() {Value1 = environment.getProperty("school.name");Value2 = environment.getProperty("school.buile.age");System.out.println("Value1: " + Value + "Value1: "+Value2 );}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/442820.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot+Vue的商城系统

技术选型 开发工具:IntelliJ IDEA2020.3 运行环境:jdk8mysqlmavennodejs 服务端:SpringBootmybatis-plus 前端:VueaxiosElement-UIvuex 成果展示

Node.js Express 框架 2024版 笔记

1.0 操作命令 Node.js express 框架 https://www.expressjs.com.cn/ npm install -g express-generator expressexpress --pug --git // --pug 添加对 pug 模板引擎的支持 // --git 添加 .gitignore 代码仓库排除 //无法直接安装新版pug模板 npm i npm …

【Nuxt3】layouts的使用

简言 Nuxt 提供了一个布局框架,用于将常见的 UI 模式提取为可重用的布局。 为了获得最佳性能,在使用时,放置在此目录中的组件将通过异步导入自动加载。 layouts layouts文件夹存放的是ui布局文件,就是实现一个页面整体架构规则的…

云原生之steam游戏幻兽帕鲁私服部署

文章目录 服务端部署docker部署docker-compose部署 客户端安装及破解开始游戏 最近幻兽帕鲁这款游戏比较火,小编专门学习了下私服部署方法。由于这款游戏存在内存泄漏问题,运行一段时间就需重启,小编考虑将游戏部署到云原生中,通过…

qemu 抓取linux kernel vmcore

一、背景 在qemu调试linux kernel时 有时我们会遇到dump 情况,这时可以通过gdb 方式连接分析dump, 但实际中我们用得更多的是离线dump 分析,分析的文件通常是vmcore(linux kernel panic 生成的coredump文件)或者ramdu…

记录 arm 开发板上 nginx 配置 http 服务注意事项

1. 自定义项目,需要在 conf.d 目录中增加一个 .conf 配置文件: server {listen 9200; # 端口号server_name localhost; # 服务名称location / {root /home/imx6q/media; # 项目根目录(需要修改 n…

JavaScript高级:js中面向对象编程

目录 1 引言 1.1 两者的区别 1.2 优缺点 2 封装性 3 原型 3.1 原型对象 3.2 构造函数和原型中的this如何指向 3.2.1 构造函数 3.2.2 原型对象 4 数组扩展案例--> 求和 和 最大值 5 原型对象中的constructor属性 6 对象原型 7 对象原型中的constructor属性 8 上…

深入了解5G终端射频标准中的频谱发射与互调特性

前面的频谱发射我们已经学习了占用带宽、带外发射和杂散发射,今天是频谱发射的最后一部分内容:互调。在很多的标准规范中,都有互调测试的相关内容,但测试条件、测试要求和测试方法都不尽相同。我们可以不必纠结互调是否有某种固定…

欢迎报名!数境·第七届工业互联网数据创新应用大赛震撼来袭!

欢迎报名! 由深圳市宝安区人民政府和中国信息通信研究院共同主办的数境第七届工业互联网数据创新应用大赛正式开赛啦~~~ 中国信通院“数境”品牌赛事起始于2017年工业大数据创新大赛,伴随着我国制造业高端化、智能化、绿色化发展不断成长,至…

【图文详解】阿里腾讯华为云服务器被攻击后更换服务器IP操作步骤合集

阿里云 固定公网IP地址更换 情况一:实例创建时间不足6小时 前提条件在尝试更换固定公网IP地址之前,必须确保ECS实例满足以下所有条件: 实例创建时间不超过6小时。已成功分配一个固定公网IP地址。如果在实例创建时未分配固定公网IP地址&am…

如何快速记忆小鹤双拼键位图?

记忆方法:韵母表 图形 最常用字 韵母表:双拼的基础 图形:帮助新手快速联想回忆 最常用字:快速打字基础 一、单韵母(紫色方块) 一一对应如下表: 单韵母aoeiu、AOEIV 二、复韵母—箭矢型&am…

30岁以下的人都去哪儿了?OpenAI费尽心机吸引年轻人

比尔盖茨的博客栏目「与比尔盖兹一起解惑」近日大火,OpenAI首席执行官奥特曼表示,OpenAI“不是由一群24岁的程序员运营的”,并表示这很令人担忧。 目前,许多热门的AI初创公司正在寻找年轻才俊,OpenAI当然也在此之列。…