重生之 SpringBoot3 入门保姆级学习(06、属性绑定)

重生之 SpringBoot3 入门保姆级学习(06、属性绑定)

      • 2.3.1 使用 @ConfigurationProperties
      • 2.3.2 使用 @EnableConfigurationProperties

2.3.1 使用 @ConfigurationProperties


  • application.properties 文件书写相关配置
pig.id=1
pig.name=王萍
pig.age=21
  • 方法一:新建 Pig 类属性绑定到 application.properties 的 pig
package com.zhong.boot302demo.bean;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** @ClassName : pig* @Description : 读取配置文件* @Author : zhx* @Date: 2024-05-26 14:39*/
@ConfigurationProperties(prefix = "pig")	// 读取配置信息前缀为 pig 的
@Component	// 注入到容器
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Pig {private Long id;private String name;private Integer age;
}
  • 打印查看结果
package com.zhong.boot302demo;import com.zhong.boot302demo.bean.Pig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;@SpringBootApplication
public class Boot302DemoApplication {public static void main(String[] args) {var ioc = SpringApplication.run(Boot302DemoApplication.class, args);System.out.println(ioc.getBean(Pig.class));}}
  • 读取配置成功 但是出现乱码

image-20240526144312150

  • 解决方法:

    汉化:找到 编辑器 -> 文件编码 进行修改

    非汉化:搜索 File Encodings 进行修改

image-20240526144810018

  • 修改完后 重新在 application.properties 写入配置

image-20240526145034561

  • 方法二:将 @ConfigurationProperties(prefix = “pig”) 放到方法上 并为方法添加 @Bean 注解使其注入容器

image-20240526145413688

2.3.2 使用 @EnableConfigurationProperties


  • application.properties 文件书写相关配置
sheep.id=2
sheep.name=钟宏雄
sheep.age=23
  • 新建 Sheep 类并指定读取 application.properties 文件中 sheep 属性
package com.zhong.boot302demo.bean;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;/*** @ClassName : Sheep* @Description :* @Author : zhx* @Date: 2024-05-26 14:59*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ConfigurationProperties(prefix = "sheep")
public class Sheep {private Long id;private String name;private Integer age;
}
  • 新增 config 注解 @EnableConfigurationProperties(Sheep.class)
package com.zhong.boot302demo.config;import com.zhong.boot302demo.bean.Pig;
import com.zhong.boot302demo.bean.Sheep;
import com.zhong.boot302demo.bean.User;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;/*** @ClassName : AppConfig* @Description : 配置类* @Author : zhx* @Date: 2024-05-23 12:55*//*** EnableConfigurationProperties(Sheep.class)* 1、开启 Sheep 组件的属性绑定* 2、默认会把这个组件自己放到容器中* 3、一般用于导入第三方写好的组件进行数据绑定* 注意: SpringBoot 默认只扫描自己主程序所在的包。如果导入第三方包,*      即使组件上标注了 @Component、@ConfigurationProperties 注解*      也没用,因为组件都扫描不进来。*/
@EnableConfigurationProperties(Sheep.class)
@Configuration
public class AppConfig {/*** 1、组件默认单实例的* 2、通过 @Scope("prototype") 修改为多实例* @return user*/@Scope("prototype")@Bean   // 替代以前的 ioc.xml 方式配置 Bean。组件在容器中的名字是方法名。可以直接修改默认值 @Bean("user01")public User user() {User user = new User();user.setId("1");user.setName("张三");return user;}@ConfigurationProperties(prefix = "pig")@Beanpublic Pig pig() {return new Pig();}
}
  • 新增输入语句 测试是否生效
package com.zhong.boot302demo;import com.zhong.boot302demo.bean.Pig;
import com.zhong.boot302demo.bean.Sheep;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;@SpringBootApplication
public class Boot302DemoApplication {public static void main(String[] args) {var ioc = SpringApplication.run(Boot302DemoApplication.class, args);System.out.println(ioc.getBean(Pig.class));System.out.println(ioc.getBean(Sheep.class));}
}
  • 成功绑定属性

image-20240526151053433

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

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

相关文章

揭秘淘宝API接口:轻松连接电商巨头,打造无限商业可能

淘宝API接口是淘宝平台对外开放的一系列接口,通过这些接口,开发者可以获取淘宝平台上的商品信息、订单信息、物流信息等数据,实现与淘宝平台的交互。淘宝API接口支持多种数据格式,如JSON、XML等,方便开发者根据自己的需…

实时工业数据采集分析平台:推动工厂智能化的关键

在当今的工业领域,随着科技的飞速发展和竞争的日益激烈,实现工厂的智能化已成为企业追求持续发展的关键目标。而实时工业数据采集分析平台作为推动工厂智能化的重要力量,正发挥着重要的作用。 实时工业数据采集分析平台能够全方位、高精度地…

elementPlus+vue3易踩的坑之el-radio单选框:为什么默认选项都被勾选了?

出错的效果&#xff1a; 选项都被选中了...... 明明是从elementplus复制过来的代码&#xff08;如下&#xff09;&#xff0c;怎么会出现这个情况呢&#xff1f; <el-radio-group v-model"radio"><el-radio value"1">通过</el-radio>&…

Windows:安装Win10、Win7系统常用的2种方式及相关问题处理

一、准备工作 1、U盘 首先&#xff0c;我们要准备一个8G左右大小的U盘 2、下载镜像文件 参考∶ 镜像文件下载及其检验方法 3、新机必备软件 建议安装之前&#xff0c;先把这些软件下载好。 360驱动大师、chrom浏览器、搜狗输入法、爱奇艺万能联播、Notepad、PDF、QQ、微信、…

如何免费把微信视频号的视频下载下来?电脑手机都可使用

今天&#xff0c;我将为大家分享一个实用的技巧&#xff1a;如何免费将微信视频号的视频下载下来。 微信视频号作为一个流行的短视频平台&#xff0c;拥有大量优质内容。然而&#xff0c;由于平台政策限制&#xff0c;我们无法直接下载视频。不过&#xff0c;别担心&#xff0…

Python环境配置以及包管理方法详细介绍

本文记录一下在Windows和Linux上安装部署Python环境以及Python包管理方法。 目录 1 Windows上安装Python2 Linux安装Python2.1 环境准备2.2 安装2.3 验证 3 python虚拟环境3.1 虚拟环境安装3.2 虚拟环境激活3.3 虚拟环境去激活 4 python包管理4.1 pip包管理工具4.2 包安装4.2.1…

拥塞控制的自适应 AQM 探索

拥塞控制面临的几类问题&#xff1a; 网络拥塞时&#xff0c;大象流如何为微突发让路&#xff1b;网络拥塞时&#xff0c;如何只惩罚造成拥塞的流量&#xff1b;网络拥塞时&#xff0c;如何确保小流量不受影响。 既然不想在 host 将流按照大小分类&#xff0c;嫌没意义&#…

【B站 heima】小兔鲜Vue3 项目学习笔记Day05

Day05 文章目录 Day05登录1. 整体认识和路由设置2. 表单校验实现3. 表单-统一校验4. 基础登录业务实现5. Pinia管理用户数据6. Pinia 数据持久化7. 登录和非登录状态下的模板适配8. 请求拦截器携带Token9. 退出登录功能的实现10. Token失效401拦截处理 购物车1. 流程梳理2. 本地…

韬光养晦的超绝项目

发展方向 竞技闯关类 可以加入对战系统积累积分&#xff0c;竞技类的接受程度更高&#xff0c;小孩&#xff08;我和我身边大多数人小时候&#xff09;都喜欢玩王者吃鸡这种经济类游戏&#xff0c;开放世界探索&#xff08;本项目、一梦江湖、逆水寒&#xff09;的受众群体年…

一文讲清楚SpringBoot项目打包jar后运行报错template might not exist - 第514篇

历史文章&#xff08;文章累计500&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 《…

定个小目标之每天刷LeetCode热题(1)

有两种解决方法&#xff1a; 第一种&#xff1a;利用哈希集合不重复的特性&#xff0c;代码展示如下 public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {Set<ListNode> listNode new HashSet<ListNode>();ListNode…

搭贝低代码平台:重塑房地产行业的工作流程与效率

随着数字化转型浪潮席卷全球&#xff0c;房地产行业也开始积极探索利用科技力量提升业务效率与服务质量。搭贝低代码平台&#xff0c;作为一款强大的数字化工具&#xff0c;正逐渐成为房地产企业优化管理流程、加速决策制定的重要推手。本文将深入探讨搭贝如何在房地产行业多个…

QT使用gsoap获取手机归属地

1-环境变量 用的win32 E:\hes_scc\tools\gsoap_2.8.134\gsoap-2.8\gsoap\bin\win32 2-生成代码接口 自己建一个目录&#xff0c;在此打开cmd窗口&#xff0c;生成的文件都会在这个文件夹中。 这里用的手机归宿地。 wsdl2h -o GetPhoneInfo.h -s -n Phone -t ....\typemap.…

集智书童 | YOLOv10开源|清华用端到端YOLOv10在速度精度上都生吃YOLOv8和YOLOv9

本文来源公众号“集智书童”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;YOLOv10开源&#xff5c;清华用端到端YOLOv10在速度精度上都生吃YOLOv8和YOLOv9 在过去几年中&#xff0c;YOLO系列模型已成为实时目标检测领域的主导范式…

生产订单工序新增BAPI:CO_SE_PRODORD_OPR_CREATE增强

背景&#xff1a; 创建生产订单工序时需要通过BAPI来维护圈起来的字段&#xff0c;但是BAPI不包含这些字段&#xff0c;所以对BAPI进行一些增强处理。 实现过程&#xff1a; 1.拷贝标准BAPI:CO_SE_PRODORD_OPR_CREATE至ZCO_SE_PRODORD_OPR_CREATE&#xff08;最好放在新的自定…

解决:java.util.concurrent.RejectedExecutionException

一 发现RejectedExecutionException错误 今天查看服务器的时候发现了一些java.util.concurrent.RejectedExecutionException错误&#xff0c;这个是由于线程池里的线程忙不过来报出的。如下图&#xff1a; 像这种 RejectedExecutionException 错误&#xff0c;表明在Java应…

QT如何将生成的exe文件打包成安装包

一、生成exe文件 1、生成exe文件 QT编译模式选择release&#xff0c;然后点击编译&#xff1a; 2、找到exe文件 在开发文件夹下找到build-xxxxxxx-Release文件夹里面找到exe文件 3、相关依赖dll文件查找 新建个空文件夹将exe文件拷贝进去&#xff1a; 然后找到如下程序…

恒创科技:Linux 服务器和 Windows 服务器哪个更好?

选择正确的服务器系统至关重要&#xff0c;目前广泛使用的选项是 Windows 服务器 和 Linux 服务器&#xff0c;它们各有优缺点。本文将比较 Linux 与 Windows 服务器&#xff0c;让我们来看看它们的主要区别&#xff0c;然后再决定哪种操作系统适合使用。 主要区别&#xff1a;…

HTTP方法、状态码和请求过程

一、HTTP方法概念&#xff1a; HTTP客户端发出请求&#xff0c;告知服务端需要执行不同类型的请求命令&#xff0c;这些命令被称为HTTP方法。 简说:HTTP方法是告诉服务器要做什么。 1、GET方法&#xff1a;获取资源 作用&#xff1a; ①通常用于请求服务器发送某个资源&am…

Tensors张量操作

定义Tensor 下面是一个常见的tensor&#xff0c;包含了里面的数值&#xff0c;属性&#xff0c;以及存储位置 tensor([[0.3565&#xff0c;0.1826&#xff0c;0.6719],[0.6695&#xff0c;0.5364&#xff0c;0.7057]]&#xff0c;dtypetorch.float32,devicecuda:0)Tensor的属…