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

继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean

骑士救美计划

  • 采用构造方法注入属性值
    • 1、创建救美任务类
    • 2、创建救美骑士类
    • 2、创建救美骑士类
    • 3、创建旧救美骑士测试类
    • 3、配置救美骑士Bean
    • 5、创建新救美骑士测试类

采用构造方法注入属性值

1、创建救美任务类

  • net.huawei.spring.day01包里创建RescueDamselQuest
    请添加图片描述

  • Rescue Damsel - 拯救少女

package net.huawei.spring.day01;
/*** 功能:救美任务类*/
public class RescueDamselQuest {public void embark() {System.out.println("执行救美任务……");}
}

2、创建救美骑士类

  • net.huawei.spring.day01包里创建DamselRescuingKnight
    请添加图片描述
package net.huawei.spring.day01;/*** 功能:救美骑士类*/
public class RescueDamselKnight {private String name;private RescueDamselQuest rescueDamselQuest;/*** 有参构造方法** @param name* @param rescueDamselQuest*/public RescueDamselKnight(String name, RescueDamselQuest rescueDamselQuest) {this.name = name;this.rescueDamselQuest = rescueDamselQuest;}public void embarkOnQuest() {System.out.print("救美骑士[" + name + ']');rescueDamselQuest.embark();}
}

2、创建救美骑士类

  • net.huawei.spring.day01包里创建DamselRescuingKnight
    请添加图片描述
package net.huawei.spring.day01;/*** 功能:救美骑士类*/
public class RescueDamselKnight {private String name;private RescueDamselQuest rescueDamselQuest;/*** 有参构造方法** @param name* @param rescueDamselQuest*/public RescueDamselKnight(String name, RescueDamselQuest rescueDamselQuest) {this.name = name;this.rescueDamselQuest = rescueDamselQuest;}public void embarkOnQuest() {System.out.print("救美骑士[" + name + ']');rescueDamselQuest.embark();}
}

代码说明:通过构造方法来设置骑士的姓名与要执行的任务。

3、创建旧救美骑士测试类

  • test/java/net.huawei.spring.day01包里创建TestRescueDamselKnightOld
    请添加图片描述
package net.huawei.spring.day01;import org.junit.Test;/*** 功能:采用传统方式测试救美骑士类*/
public class TestRescueDamselKnightOld {@Testpublic void testRescueDamselKnight() {// 创建救美任务对象RescueDamselQuest rescueDamselQuest = new RescueDamselQuest();// 创建救美骑士对象RescueDamselKnight rescueDamselKnight = new RescueDamselKnight("格拉海德", rescueDamselQuest);// 救美骑士执行任务rescueDamselKnight.embarkOnQuest();}
}
  • 运行testRescueDamselKnight()测试方法,查看结果
    请添加图片描述

3、配置救美骑士Bean

  • 在Spring配置文件里创建救美骑士Bean
    在这里插入图片描述
  • arg: argument 参数
<!-- 配置救美任务Bean --><bean id="rescueDamselQuest" class="net.zwh.spring.day01.RescueDamselQuest"/><!-- 配置救美骑士Bean --><bean id="damselRescuingKnight" class="net.zwh.spring.day01.RescueDamselKnight"><constructor-arg value="格拉海德"/><constructor-arg ref="rescueDamselQuest"/></bean>

5、创建新救美骑士测试类

  • test/java/net.huawei.spring.day01包里创建TestRescueDamselKnightNew
    请添加图片描述
package net.huawei.spring.day01;import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;/*** 功能:采用Spring容器测试救美骑士类*/
public class TestRescueDamselKnightNew {private ClassPathXmlApplicationContext context; // 基于类路径XML配置文件的应用容器(Bean工厂)@Before // 每次测试方法执行前都要执行的代码就放在此方法里public void init() {// 基于Spring配置文件创建应用容器context = new ClassPathXmlApplicationContext("xmlconfig/spring-config.xml");// 提示用户System.out.println("Spring应用容器已创建~");}@Testpublic void testRescueDamselKnight() {// 根据名称从应用容器中获取救美骑士对象RescueDamselKnight rescueDamselKnight = (RescueDamselKnight) context.getBean("rescueDamselKnight");// 救美骑士执行任务rescueDamselKnight.embarkOnQuest();}@After // 每次测试方法执行后都要执行的代码就放在此方法里public void destroy() {// 关闭应用容器context.close();// 提示用户System.out.println("Spring应用容器已关闭~");}
}
  • 运行testRescueDamselKnight()测试方法,查看效果
    请添加图片描述

相关文章:

继企业级信息系统开发学习1.1 —— Spring配置文件管理Bean

骑士救美计划采用构造方法注入属性值1、创建救美任务类2、创建救美骑士类2、创建救美骑士类3、创建旧救美骑士测试类3、配置救美骑士Bean5、创建新救美骑士测试类采用构造方法注入属性值 1、创建救美任务类 在net.huawei.spring.day01包里创建RescueDamselQuest类 Rescue Da…...

Web 容器、HTTP 服务器 、Servlet 容器区别与联系

首先浏览器发起 HTTP 请求&#xff0c;像早期的时候只会请求一些静态资源&#xff0c;这时候需要一个服务器来处理 HTTP 请求&#xff0c;并且将相应的静态资源返回。 这个服务器叫 HTTP 服务器。 简单点说就是解析请求&#xff0c;然后得知需要服务器上面哪个文件夹下哪个名字…...

eBPF 进阶: 内核新特性进展一览

Linux 内核在 2022 年主要发布了 5.16-5.19 以及 6.0 和 6.1 这几个版本&#xff0c;每个版本都为 eBPF 引入了大量的新特性。本文将对这些新特性进行一点简要的介绍&#xff0c;更详细的资料请参考对应的链接信息。总体而言&#xff0c;eBPF 在内核中依然是最活跃的模块之一&a…...

2.输入子系统学习-multi-touch-protocol-2023.02

Documentation/input/multi-touch-protocol.txt&#xff08;百度翻译&#xff09; Multi-touch (MT) Protocol ------------------------- Copyright (C) 2009-2010 Henrik Rydberg <rydbergeuromail.se> 一、Introduction ------------ In order to utilize t…...

【靶机】vulnhub靶机pylington

靶机下载地址 Pylington: 1 ~ VulnHub kali ip&#xff1a;192.168.174.128 靶机ip&#xff1a;192.168.174.146 arp-scan -l发现靶机ip是192.168.174.146 进行靶机的端口扫描&#xff0c;这里使用的是nmap的gui 可以发现开放了21和80端口&#xff0c;80端口扫描到了robot…...

【大数据】大数据学习路线

职位选择 首先明确一点&#xff1a;大数据涉及的知识面广度还是有的&#xff0c;需要学习的组件繁多&#xff0c;想要每一项精通几乎不可能&#xff0c;所以企业在招聘的时候会进行细分&#xff0c;基于某个方向进行招聘&#xff0c;比如关键字&#xff0c;数据仓库工程师、数…...

【Python爬虫案例教学】采集某网站壁纸,实现壁纸自由

前言 (&#xff61;&#xff65;∀&#xff65;)&#xff89;&#xff9e;嗨 大家好&#xff0c;这里是小圆 现在开始每天都给大家 分享些关于python爬虫的案例教学 从最简单的开始 — 采集图片壁纸 今天就来扒拉这个优质的壁纸网站~ 网址 &#x1f447; 顺便瞧一眼 这里的…...

波卡2022年第四季度报告

本文将介绍Messari最新发布的波卡Polkadot 2022年第四季度报告内容。 1 Messari已经发布关于波卡Polkadot最新的报告&#xff1a;显示了2022年第四季度的日活账户增加了64%&#xff0c;新用户增长49%。 2 Messari指出&#xff0c;波卡中继链在2022第四季度的环比增长令人印象…...

第一章:初始化react项目+antd+less

初始化react项目 我们首先使用react脚手架创建一个项目 Ant Design less creact-react-app中文文档 creact-react-app demo生产环境打包运行 当我们执行了 npm run build 打包后直接访问index.html 看效果白屏 这时候就需要安装一个serve包 npm install -g serve当我们安…...

图的基本概念

1、图的概念 G(V&#xff0c;E) 图G由节点集合VV(G)和边集合EE(G)组成&#xff0c;其中V为非空有限集合。 集合V中的节点&#xff08;node&#xff09;用红色标出&#xff0c;通过集合E中黑色的边&#xff08;edge&#xff09;连接。 G的边&#xff1a;E中的每个顶点对&#x…...

MySQL必会四大函数-窗口函数

在了解窗口函数之前&#xff0c;我们必须了解聚合函数。常见的聚合函数&#xff0c;包括 AVG、COUNT、MAX、MIN、SUM 以及 GROUP_CONCAT&#xff0c;常和GROUP BY 函数一起使用。聚合函数的作用就是对一组数据行进行汇总计算&#xff0c;并且返回单个分析结果。 窗口函数和聚合…...

各CCF期刊点评网站/学术论坛的信息汇总及个人评价

CCF中文期刊投稿选择之篇章一:各CCF期刊点评网站/学术论坛的信息汇总及个人评价中文科技期刊A类&#xff08;EI检索&#xff09;中文期刊投稿点评网站整理1.小木虫学术论坛2. Letpub3. Justscience4. 发表记5. 会伴&#xff08;Conference Partner)6. ijouranl7. 掌桥科研这是以…...

深度解析 JavaScript 严格模式:利弊长远的考量

前言 ECMAScript 5首次引入严格模式的概念。严格模式用于选择以更严格的条件检查JavaScript代码错误&#xff0c;可以应用到全局&#xff0c;也可以应用到函数内部。 严格模式的好处是可以提早发现错误&#xff0c;因此可以捕获某些 ECMAScript 问题导致的编程错误。 理解严格…...

Vue.js 循环语句

Vue.js 循环语句 在Vue开发中&#xff0c;for循环是我们最常遇见的场景之一&#xff0c;我们知道常见的遍历方式有for循环&#xff0c;for of、forEach、for in.虽然在开发过程中&#xff0c;这几种方式基本上可以满足我们大多数的场景&#xff0c;但是你真的知道他们之间的区…...

家政服务小程序实战教程12-详情页

我们的家政服务小程序已经完成了首页和分类展示页面的开发&#xff0c;接下来就需要开发详情页了。在详情页里我们展示我们的各项服务内容&#xff0c;让用户可以了解每项家政服务可以提供的内容。 低码开发不像传统开发&#xff0c;如果开发详情页需要考虑每个字段的类型&…...

十四、平衡二叉树

1、看一个案例&#xff08;说明二叉排序树可能的问题&#xff09; 给你一个数列{1,2,3,4,5,6}&#xff0c;要求创建一棵二叉排序树&#xff08;BST&#xff09;&#xff0c;并分析问题所在。 上面二叉排序树存在问题分析&#xff1a; 左子树全部为空&#xff0c;从形式上看&…...

AC/DC 基础

一、概念&#xff1a; AC转换成DC的基本方法有变压器方式和开关方式&#xff0c;如下图1、2所示&#xff1b;整流的基本方法有全波整流和半波整流&#xff0c;如下图3所示。 图1 变压器方式 图2 开关方式 图3 整流方式 二、转换方式 1、变压器方式 变压器方式首先需要通过变压…...

集成电路相关书籍

注&#xff1a;从此开始&#xff0c;文中提到的书籍都会在公众号对应文章末尾给出链接&#xff0c;不需要在微信后台获取&#xff0c;当然还是可以通过在微信后台回复相关书名获取对应的电子书。 在后台看到很多人回复集成电路相关的一些书籍&#xff0c;所以本文就提供一些书籍…...

前端开发之防抖与节流

前端开发中我们经常会通过监听某些事件来完成项目需求 1.通过监听 scroll 事件&#xff0c;检测滚动位置&#xff0c;根据滚动位置显示返回顶部按钮 2.通过监听 resize 事件&#xff0c;对某些自适应页面调整DOM的渲染&#xff08;通过CSS实现的自适应不再此范围内&#xff09;…...

大公司如何用A/B测试解决增长问题?

摘要&#xff1a;上线六年&#xff0c;字节跳动的短视频产品——抖音已成为许多人记录美好生活的平台。除了抖音&#xff0c;字节跳动旗下还同时运营着数十款产品&#xff0c;从资讯、游戏&#xff0c;到房产、教育等横跨多个领域。在产品迭代速度和创新能力的快速发展下&#…...

基于51单片机与74LS30的智能抢答器系统设计与实现

1. 智能抢答器系统概述 在各类知识竞赛、课堂互动和电视节目中&#xff0c;抢答器都是不可或缺的设备。传统机械式抢答器存在响应慢、易误触等问题&#xff0c;而基于51单片机的智能抢答器系统则完美解决了这些痛点。这个系统我做过不下十次&#xff0c;实测响应时间可以控制在…...

LrcHelper:网易云音乐双语歌词下载与设备适配完整指南

LrcHelper&#xff1a;网易云音乐双语歌词下载与设备适配完整指南 【免费下载链接】LrcHelper 从网易云音乐下载带翻译的歌词 Walkman 适配 项目地址: https://gitcode.com/gh_mirrors/lr/LrcHelper 你是否经常遇到喜欢的歌曲没有歌词&#xff0c;或者歌词与音乐不同步的…...

手把手教你用XTTS v2克隆自己的声音:从录音到生成的完整避坑指南

零基础玩转XTTS v2语音克隆&#xff1a;从录音到生成的保姆级实战手册 1. 语音克隆技术的前世今生 语音合成技术&#xff08;TTS&#xff09;的发展已经走过了数十年的历程。从早期的机械式发音到如今的神经网络语音合成&#xff0c;技术的进步让语音克隆变得越来越自然。XTTS …...

SEO_10个简单有效的SEO技巧,快速提升网站排名

SEO:10个简单有效的SEO技巧&#xff0c;快速提升网站排名 在当今互联网时代&#xff0c;网站的排名直接关系到它的流量和盈利能力。SEO&#xff08;搜索引擎优化&#xff09;技巧就是为了帮助网站在搜索引擎中获得更高的排名。本文将分享十个简单有效的SEO技巧&#xff0c;帮助…...

Realistic Vision V5.1 虚拟摄影棚面试实战:解析Java八股文中的系统设计题

Realistic Vision V5.1 虚拟摄影棚面试实战&#xff1a;解析Java八股文中的系统设计题 最近在帮朋友准备后端开发的面试&#xff0c;发现一个挺有意思的现象。大家聊起Java八股文&#xff0c;尤其是系统设计题&#xff0c;总觉得有点枯燥&#xff0c;像是在背标准答案。什么“…...

IEEE论文LaTeX排版技巧(十一)| 尾页双栏平衡优化实战指南

1. 为什么尾页双栏平衡如此重要&#xff1f; 当你熬夜改完论文准备提交时&#xff0c;有没有发现最后一页的两栏长度总是不对称&#xff1f;左边栏挤得满满当当&#xff0c;右边栏却空出一大截&#xff0c;这种视觉上的不平衡会直接影响评审专家对你论文的第一印象。我在审阅学…...

Uvicorn源码中的中介者模式:组件通信与解耦设计

Uvicorn源码中的中介者模式&#xff1a;组件通信与解耦设计 【免费下载链接】uvicorn An ASGI web server, for Python. &#x1f984; 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn Uvicorn作为Python生态中流行的ASGI web服务器&#xff0c;其内部架构巧…...

OpenClaw+Qwen3-32B-Chat镜像:3种模型接入方案对比实测

OpenClawQwen3-32B-Chat镜像&#xff1a;3种模型接入方案对比实测 1. 为什么需要测试不同接入方案&#xff1f; 去年冬天&#xff0c;当我第一次在本地部署OpenClaw时&#xff0c;最头疼的问题就是如何选择模型接入方式。作为个人开发者&#xff0c;既希望获得稳定的AI能力&a…...

微信小程序点餐毕业设计开题报告怎么写:从实战需求到技术架构的完整拆解

最近在辅导学弟学妹做毕业设计&#xff0c;发现很多同学在写“微信小程序点餐系统”的开题报告时&#xff0c;都挺头疼的。大家普遍感觉&#xff0c;报告写出来要么是功能列表的堆砌&#xff0c;要么就是技术方案写得特别虚&#xff0c;什么“采用先进技术”、“保证高可用”&a…...

2026丨科学大百科:Java面试时问在项目开发时遇到最难的是什么问题,?怎么解决的?

​ 2026科学大百科:Java面试难题破解指南 典型难点分类与解决方案 高并发场景下的数据一致性 分布式系统中使用Redis与数据库的双写一致性是常见痛点。通过实现延迟双删策略结合本地消息表,确保最终一致性。代码示例: // 伪代码:延迟双删 public void updateData(key, val…...