使用Spring实现“控制反转”

2023-11-07

1.新建Java项目,目录结构如下:
在这里插入图片描述
2.Spring配置文件applicationContext.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
	<!-- 通过bean元素声明需要Spring创建的实例。该实例的类型通过class属性指定,并通过id属性为该实例指定一个名称,以便在程序中使用 -->
	<bean id="helloSpring" class="cn.springdemo.HelloSpring">
	<!-- property元素用来为实例的属性赋值,此处实际是调用setWho()方法实现赋值操作-->
		<property name="who">
			<!-- 此处将字符串"Spring"赋值给who属性 -->
			<value>Spring</value>
		</property>
	</bean>
</beans>

3.类HelloSpring.java代码如下:

package cn.springdemo;
/**
 * 第一个Spring,输出"Hello,Spring!"。
 */
public class HelloSpring {
	// 定义who属性,该属性的值将通过Spring框架进行设置
	private String who = null;

	/**
	 * 定义打印方法,输出一句完整的问候。
	 */
	public void print() {
		System.out.println("Hello," + this.getWho() + "!");
	}

	public String getWho() {
		return who;
	}
	public void setWho(String who) {
		this.who = who;
	}
}
测试类HelloSpringTest.java代码如下:
package test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.springdemo.HelloSpring;

public class HelloSpringTest {

    @Test
    public void helloSpring() {
        // 通过ClassPathXmlApplicationContext实例化Spring的上下文
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        // 通过ApplicationContext的getBean()方法,根据id来获取bean的实例
        HelloSpring helloSpring = (HelloSpring) context.getBean("helloSpring");
        // 执行print()方法
        helloSpring.print();
    }
}

输出结果:Hello,Spring!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Spring实现“控制反转” 的相关文章

  • 面试问题 - 在排序数组 X 中搜索索引 i,使得 X[i] = i

    昨天面试时 我被问到了以下问题 考虑一个 Java 或 C 数组X它已排序并且其中没有两个元素是相同的 如何最好地找到索引i这样该索引处的元素也是i 那是X i i 作为澄清 她还给了我一个例子 Array X 3 1 0 3 5 7 in
  • 如何检测线程是否被IO阻塞?

    在Java中 线程可以有不同的状态 新的 可运行的 阻塞的 等待的 TIMED WAITING 的 终止的 然而 当线程被IO阻塞时 其状态为 RUNNABLE 如何判断是否被IO阻塞 NEW 线程已创建但尚未处理 可运行 线程正在占用CP
  • Hamcrest 泛型地狱 #2:iterable With Size 给出错误“不适用于参数”

    在 hamcrest 中 1 3 RC2 没有 JUnit 依赖项 我使用失败iterableWithSize 我有一个 扩展 Iterator参数化为Content像这样EndResult
  • mvn dependency:analyze 结果不正确

    我一直在寻找一种工具 它能够向您显示未使用的依赖项 我很快就偶然发现了 Maven 命令mvn dependency analyze 这样做的问题是 它经常检测到 未使用的 依赖项 如果缺失 这些依赖项就会导致构建失败 这是优化项目的示例
  • 如何从 .t​​xt 文件读取数据并将数据放入对象的数组列表中?

    到目前为止 我所写的内容是基于我目前对基本数组的了解 但我只是不明白如何使用数组列表 或如何从文件中读取 到目前为止我所写的内容有效 任何有助于修复我的代码以从文件中读取并使用数组列表的链接或建议将不胜感激 谢谢 public class
  • Spring - 绑定到对象而不是字符串或基元

    假设我有以下命令对象 class BreakfastSelectCommand List
  • JSP重定向和传值

    我有一个 JSP 其中我重定向到另一个 jsp 例如 我在该jsp中没有任何其他数据 我想将值从该jsp index jsp 传递到重定向jsp login jsp 我将如何做到这一点 这里的 logonInput 是在struts con
  • 用户“root”@“localhost”的访问被拒绝

    我正在尝试从数据库中获取记录 但我面临这个访问被拒绝的问题 我尝试了 Stack Overflow 上提到的其他解决方案 例如向用户授予权限 但没有任何效果 访问数据库的代码 public void service HttpServletR
  • 带有 spring-kafka 的 Kafka 死信队列 (DLQ)

    最好的实施方式是什么死信队列 DLQ Spring Boot 2 0 应用程序中的概念 使用 spring kafka 2 1 x 来处理无法处理的所有消息 KafkaListener某些bean发送到某些预定义的Kafka DLQ主题的方
  • 让 Java 与 Windows 10 Ubuntu 一起使用

    我安装了 Windows 10 周年更新 以便可以在 Windows 上的 Ubuntu 上尝试 Bash 看如何安装 http www howtogeek com 249966 how to install and use the lin
  • 从外部 clojar 导入/使用资源

    我想做的是将一个大文件 MIDI 声音字体 打包到一个独立的 Maven repo clojar 中 然后能够以编程方式将其拉下来并从单独的项目中使用它 事实证明 这个看似简单的任务比我想象的要复杂 理想的情况是 如果有一种方法可以直接访问
  • 从 Java 调用 Python 代码时出现问题(不使用 jython)

    我发现这是从 java 运行 使用 exec 方法 python 脚本的方法之一 我在 python 文件中有一个简单的打印语句 但是 我的程序在运行时什么也没做 它既不打印Python文件中编写的语句 也不抛出异常 程序什么都不做就终止了
  • 如何在最短的时间内克隆java中的输入流

    有人可以告诉我如何克隆输入流 并花费尽可能少的创建时间吗 我需要多次克隆输入流以使用多种方法来处理 IS 我尝试了三种方法 但由于这样或那样的原因 事情不起作用 方法 1 感谢 stackoverflow 社区 我发现以下链接很有帮助 并将
  • Java反序列化中避免重复对象

    我有两个列表 list1 和 list2 其中包含对某些对象的引用 其中某些列表条目可能指向同一对象 然后 由于各种原因 我将这些列表序列化为两个单独的文件 最后 当我反序列化列表时 我想确保我不会重新创建超出需要的对象 换句话说 List
  • 如何迭代SparseArray?

    有没有办法迭代 Java SparseArray 适用于 Android 我用了sparsearray通过索引轻松获取值 我找不到 看来我找到了解决方案 我没有正确注意到keyAt index 功能 所以我会这样做 for int i 0
  • 使用 Java 进行 AES 加密并使用 Javascript 进行解密

    我正在制作一个需要基于 Java 的 AES 加密和基于 JavaScript 的解密的应用程序 我使用以下代码作为基本形式进行加密 public class AESencrp private static final String ALG
  • 用于将字符串与通配符模式进行匹配的递归函数

    所以我一整天都在试图解决这个作业 只是无法完成 以下函数接受 2 个字符串 第二个 不是第一个 可能包含 的 星号 An 是字符串的替换 空 1个字符或更多 它可以出现 仅在s2中 一次 两次 更多或根本不出现 它不能与另一个相邻 ab c
  • 当我必须在 Netty4 编码器中调用 ByteBuf.retain() 时?

    我正在编写一个以 NUL 终止 JSON 消息的编码器 以便在消息碎片的情况下可以对其进行解码 我找到了这个样本 gt click https github com netty netty blob master codec src mai
  • PostgreSQL 使用 JPA 和 Hibernate 抛出“列的类型为 jsonb,但表达式的类型为 bytea”

    这是我的实体类 映射到表中postgres 9 4 我正在尝试将元数据存储为jsonb在数据库中输入 Entity Table name room categories TypeDef name jsonb typeClass JsonBi
  • gwt - 在 RPC 调用中使用 List

    我有一个 RPC 服务 方法如下 public List

随机推荐

  • maven学习笔记 maven的安装和配置

    maven是什么 maven是一个Java项目管理工具 maven提供了大量命令行工具 可以方便的管理java项目建立 开发 测试 打包 生成 部署等各个生命周期的操作 极大的方便开发者 同时 maven还提供了统一的项目结构 简化了项目的
  • Matlab 自编雅可比矩阵 (jacobi) 函数与官方的Jacobian matrix(雅可比矩阵)函数对比及创新

    目录 0 引言 1 雅可比矩阵 2 matlab中函数表达式两种方法 2 1 符号表达式 2 2 函数句柄 2 3 函数句柄与符号表达式相互转化 2 4 常会用到的一些函数 3 自编代码 4 官方函数 5 参考文献 0 引言 最近遇到了一些
  • 点云边界提取及可视化

    include
  • qt自定义qtablemodel实现改变item的背景色

    如果你使用的是qtablewidget就非常简单 只需要 qtablewidget gt item i j gt setBackground QBrush 0 0 0 如果你的qtableview的时候 需要使用自定义模型 也就是继承QAb
  • SQL server 2016 安装步骤

    SQL server 2016 安装步骤 1 进入安装中心 可以参考硬件和软件要求 可以看到一些说明文档 2 选择全新安装模式继续安装 3 输入产品秘钥 这里使用演示秘钥进行 4 在协议中 点击同意 并点击下一步按钮 继续安装 5 进入全局
  • 程序出现以下报错现象 解决办法 在程序开始加上 from urllib request import urlopen
  • 基于FPGA的一维卷积神经网络CNN的实现(七)池化层实现

    池化层实现 环境 Pytorch Pycham Matlab 订阅后有问题 或者需要该节的文件 请私信 说明 上一节已经介绍了卷积层电路实现的原理 这一节主要介绍池化层实现的原理 第一节 基于FPGA的一维卷积神经网络CNN的实现 一 框架
  • PHP数字金额转中文大写金额

    今天开发一个项目功能的时候突然需要将数字金额转换成大写中文金额 故在百度搜索了一翻 再针对性都修改一点点 记录此处 金额转汉字大写 function cny ns static cnums array 零 壹 贰 叁 肆 伍 陆 柒 捌 玖
  • 微信小程序开发布局——Flex

    微信小程序开发布局 Flex 问题背景 微信小程序页面布局方式采用的是 Flex 布局 本文将介绍微信开发过程Flex布局的相关知识 问题分析 1 任何一个容器都可以指定为Flex布局 box display flex 行内元素也可以使用F
  • 亚信科技AntDB数据库专家出席数据库标准研讨会并参与研讨

    2023年7月12日 全国信息技术标准化技术委员会数据库标准工作组 SAC TC28 WG31 秘书处组织召开数据库标准研讨会 会议围绕数据库标准工作组2023年上半年开展的标准编制情况进行交流 亚信科技AntDB数据库相关专家出席会议 并
  • 红黑树 java

    1每个节点是红色或者黑色 2根节点是黑色 3每一个叶子节点 最后的空节点 是黑色 4如果一个节点是红色 那么他的孩子节点都是黑色 红色节点都是向左倾斜 5从任意一个节点到叶子节点 经过的黑色节点是一样的 也满足二分搜索树的性质 是绝对平衡的
  • redis学习笔记01:String类型的实现SDS

    看了 Redis设计与实现 第二章关于redis底层对于String类型的实现 SDS Simple Dynamic String 简单动态字符串 的内容 在这里做一点简单的总结笔记 一 SDS结构 struct sdshdr 记录buf数
  • AtCoder Beginner Contest 314

    A 3 14 atcoder jp AC代码 include
  • 数字电路设计之低功耗设计方法四:预计算

    pre computation 这是一个预先计算 在一定条件下 可以做出判断之后 对于一些没必要的计算那就不计算 如果应用已有的计算无法得出正确的结果 那么就继续往下计算直到计算出所需的结果 这个做法相比原始的全部计算的方法大大降低了动态功
  • [JAVAee]多线程-wait方法与notify方法

    我们知道 线程之间是抢占式执行的 通俗来说 就是随机调度的 每一个线程什么时候运行我们也不知道 这里就来介绍 让线程可以按照一定顺序执行的方法 目录 1 wait方法 2 notify notifyAll方法 3 使用wait与notify
  • IPMI与BMC简介

    智能平台管理接口 IPMI 是一种开放标准的硬件管理接口规格 定义了嵌入式管理子系统进行通信的特定方法 IPMI 信息通过基板管理控制器 BMC 位于 IPMI 规格的硬件组件上 进行交流 使用低级硬件智能管理而不使用操作系统进行管理 具有
  • Window localStorage 属性与Window sessionStorage 属性(Js将数据存储在浏览器端)

    一 目的 实现浏览器全局变量 即可轻松解决跨页面传值问题 二 简介 1 localStorage 和 sessionStorage 属性允许在浏览器中存储 key value 对的数据 2 localStorage用于长久保存整个网站的数据
  • 病理切片的相关文章总结

    1 数字病理学中的人工智能 用于诊断和精确肿瘤学的新工具 2 小样本学习研究综述 中科院计算所 3 基于无监督组织分类的结直肠癌生存预测研究 4 常规组织病理学弱监督无标注癌检测与基因型预 5 肿瘤拓扑图 无监督深度学习 6 一种基于原型学
  • Qt部件基类QWidget

    1 默认部件基类 QT提供的默认部件基类包括QMainWindow QWidget 和QDialog这三种 这三个部件基类也是用的最多的 QMainWindow是带有菜单栏 工具栏 状态栏的主窗口类 它有自己单独的布局 布局有一个中心区域
  • 使用Spring实现“控制反转”

    1 新建Java项目 目录结构如下 2 Spring配置文件applicationContext xml代码如下