当前位置: 首页 > news >正文

第十一节:学习通过动态调用application.properties参数配置实体类(自学Spring boot 3.x的第二天)

大家好,我是网创有方。这节实现的效果是通过代码灵活地调用application.properties实现配置类参数赋值。

第一步:编写配置类

package cn.wcyf.wcai.config;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;@Configuration   //声明是个配置类
public class WechatConfig {public String getAppId() {return appId;}public void setAppId(String appId) {this.appId = appId;}public String getToken() {return token;}public void setToken(String token) {this.token = token;}public String getSecretKey() {return secretKey;}public void setSecretKey(String secretKey) {this.secretKey = secretKey;}private String appId;private String token;private String secretKey;
}

第二步:编写application.properties

spring.application.name=wcai
server.port=80
#用于配置请求controller的path前缀,比如/demo,就是在请求前面加上/demo,留空就不加
server.servlet.context-path=
wechat.app-id=wx4dqdadqqdq
wechat.token=da6644qd44ad72q
wechat.secret-key=7a78d57q4523szd45357

第三步:编写 Controller,通过environment的getProperty动态获取application.properties的参数

@RestController
public class HellowordController {@ResourceApplicationContext applicationContext;@RequestMapping("/helloword")public String getHelloword(){return "helloword";}@RequestMapping("/getWechatConfig")public WechatConfig getWechatSetting(){Environment enr = applicationContext.getEnvironment();String appId = enr.getProperty("wechat.app-id");String token = enr.getProperty("wechat.token");String secret_key = enr.getProperty("wechat.secret-key");WechatConfig wechatSetting = new WechatConfig();wechatSetting.setAppId(appId);wechatSetting.setToken(token);wechatSetting.setSecretKey(secret_key);return wechatSetting;}
}

运行效果:

 

个人感觉这种方式还是没有上节的自动配置方法好用。第十节:学习ConfigurationProperties类来配置pojo实体类参数(自学Spring boot 3.x的第二天)-CSDN博客

相关文章:

  • PostgreSQL主从同步
  • 安装node软件 文件夹里没有node_modules 包 是怎么回事
  • 突破SaaS产品运营困境:多渠道运营如何集中管理?
  • MasterLogic-200 PLC可以与Honeywell 的 DCS系统 Experion PKS、SCADA系统Experion HS 系统
  • 在不修改.gitignore的情况下,忽略个人文件的提交
  • 超简洁Django个人博客系统(适合初学者)
  • 单片机中有FLASH为啥还需要EEROM?
  • 2024年地球生态学与绿色发展国际会议 (EEGD 2024)
  • 一棵B+树可以存放多少行数据
  • 激光粒度分析仪校准过程中的注意事项与问题解决
  • Unity海面效果——4、法线贴图和高光
  • Ubuntu Server 和 Ubuntu Desktop 组合使用
  • OpenHarmony 5.0 纯血鸿蒙系统
  • 改进的蜣螂优化算法仿真程序-高分资源-下载可用
  • 百度AI使用-图像文字识别
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Codepen 每日精选(2018-3-25)
  • Git学习与使用心得(1)—— 初始化
  • Iterator 和 for...of 循环
  • Joomla 2.x, 3.x useful code cheatsheet
  • js如何打印object对象
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • nodejs:开发并发布一个nodejs包
  • Octave 入门
  • vue-cli在webpack的配置文件探究
  • 从0到1:PostCSS 插件开发最佳实践
  • 高程读书笔记 第六章 面向对象程序设计
  • 离散点最小(凸)包围边界查找
  • 入门级的git使用指北
  • 数据可视化之 Sankey 桑基图的实现
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 我看到的前端
  • 以太坊客户端Geth命令参数详解
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • #每日一题合集#牛客JZ23-JZ33
  • $(function(){})与(function($){....})(jQuery)的区别
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第2节(共同的基类)
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (多级缓存)多级缓存
  • (二)pulsar安装在独立的docker中,python测试
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (四) 虚拟摄像头vivi体验
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转) RFS+AutoItLibrary测试web对话框
  • (转载)CentOS查看系统信息|CentOS查看命令
  • ***测试-HTTP方法
  • .DFS.
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .Net面试题4
  • .Net中的设计模式——Factory Method模式