springboot使用@ConfigurationProperties封装配置文件

逃离我推掉我的手 2023-06-25 04:58 183阅读 0赞

业务场景:
把配置文件的信息,读取并自动封装成实体类,可以使用@ConfigurationProperties,把同类的配置信息自动封装成实体类。
1、在pom.xml中添加依赖包

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-configuration-processor</artifactId>
  4. <optional>true</optional>
  5. </dependency>

2、创建配置文件(application.properties)

  1. wx.appid = wx111111
  2. wx.redirectUri = https://www.baidu.com/
  3. wx.templateId = 1
  4. wx.first = 模板标题
  5. wx.remark = 模板备注
  6. wx.color = #000000
  7. sms.appid = 111111
  8. sms.appkey = bd3bfba026f711eaac3b005056b84de4
  9. sms.templateId = 1
  10. sms.sign = Jeff

3、创建测试类1(WxSettings.java)

  1. package com.jeff.config;
  2. import org.springframework.boot.context.properties.ConfigurationProperties;
  3. import org.springframework.stereotype.Component;
  4. @Component
  5. @ConfigurationProperties(prefix = "wx")
  6. public class WxSettings {
  7. private String appid;
  8. private String redirectUri;
  9. private Integer templateId;
  10. private String first;
  11. private String remark;
  12. private String color;
  13. public String getAppid() {
  14. return appid;
  15. }
  16. public void setAppid(String appid) {
  17. this.appid = appid;
  18. }
  19. public String getRedirectUri() {
  20. return redirectUri;
  21. }
  22. public void setRedirectUri(String redirectUri) {
  23. this.redirectUri = redirectUri;
  24. }
  25. public Integer getTemplateId() {
  26. return templateId;
  27. }
  28. public void setTemplateId(Integer templateId) {
  29. this.templateId = templateId;
  30. }
  31. public String getFirst() {
  32. return first;
  33. }
  34. public void setFirst(String first) {
  35. this.first = first;
  36. }
  37. public String getRemark() {
  38. return remark;
  39. }
  40. public void setRemark(String remark) {
  41. this.remark = remark;
  42. }
  43. public String getColor() {
  44. return color;
  45. }
  46. public void setColor(String color) {
  47. this.color = color;
  48. }
  49. @Override
  50. public String toString() {
  51. return "WxSettings [appid=" + appid + ", redirectUri=" + redirectUri + ", templateId=" + templateId + ", first="
  52. + first + ", remark=" + remark + ", color=" + color + "]";
  53. }
  54. }

4、创建测试类2(SmsSettings.java)

  1. package com.jeff.config;
  2. import org.springframework.boot.context.properties.ConfigurationProperties;
  3. import org.springframework.stereotype.Component;
  4. @Component
  5. @ConfigurationProperties(prefix = "sms")
  6. public class SmsSettings {
  7. private String appid;
  8. private String appkey;
  9. private Integer templateId;
  10. private String sign;
  11. public String getAppid() {
  12. return appid;
  13. }
  14. public void setAppid(String appid) {
  15. this.appid = appid;
  16. }
  17. public String getAppkey() {
  18. return appkey;
  19. }
  20. public void setAppkey(String appkey) {
  21. this.appkey = appkey;
  22. }
  23. public Integer getTemplateId() {
  24. return templateId;
  25. }
  26. public void setTemplateId(Integer templateId) {
  27. this.templateId = templateId;
  28. }
  29. public String getSign() {
  30. return sign;
  31. }
  32. public void setSign(String sign) {
  33. this.sign = sign;
  34. }
  35. @Override
  36. public String toString() {
  37. return "SmsSettings [appid=" + appid + ", appkey=" + appkey + ", templateId=" + templateId + ", sign=" + sign
  38. + "]";
  39. }
  40. }

5、创建测试类(MyController.java)

  1. package com.jeff.controller;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. import com.jeff.config.SmsSettings;
  6. import com.jeff.config.WxSettings;
  7. @RestController
  8. public class MyController {
  9. @Autowired
  10. private WxSettings wx;
  11. @Autowired
  12. private SmsSettings sms;
  13. @RequestMapping("myTest")
  14. public String myTest() {
  15. System.out.println(wx.toString());
  16. System.out.println(sms.toString());
  17. return "success";
  18. }
  19. }

6、打开浏览器访问 http://localhost:8080/myTest,控制台输出结果
在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,183人围观)

还没有评论,来说两句吧...

相关阅读