Spring:基于xml文件的控制反转(ioc)

2023-10-26

1、环境搭建

导入spring使用最基本的坐标

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.0.2.RELEASE</version>
</dependency>

在resources下创建一个applicationContext.xml文件,配置所需对象的ioc 。

通常一个类对应一个bean标签,指定【唯一id标识】和【全类名】。

<?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.xsd">
    
    <!--将创建某个service对象的控制权交给框架-->
    <bean id="accountService" class="com.service.impl.AccountServiceImpl"/>
</beans>

 一旦配置了ioc,就会将对应的对象存入ioc容器中。ioc是一个键值对结构的容器,key值就是唯一id标识,value值就是通过全类名反射创建的对象。所以,通过唯一标识就可以定位到对应的对象。

底层创建Bean对象的三种设计方式

  • 第一种:【使用默认构造函数创建】。在spring的配置文件中,使用bean标签,且除了id和class属性外没有其他属性时,使用的就是该种方式。此时如果Bean类中没有默认构造函数,将无法创建对象。(基本上每个类都会有默认的构造方法)
  • 第二种:【根据某个类中的方法来获取返回值对象】,比如在某个A类中有一个方法,该方法会返回一个B类对象,如何获取B类对象?可以通过id创建A类对象再调用方法获取B类对象。但是如果想要直接通过id获取B类对象呢?要进行如下配置:
<!--配置通过某个类中的方法获取对象-->
<bean id="nameA
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring:基于xml文件的控制反转(ioc) 的相关文章

  • 数据处理:修改rosbag topic的frame_id

    1 安装srv tools工具 git clone https github com srv srv tools git 将其作为功能包放到ros工作空间下编译即可 2 使用示例 rosrun bag tools change frame
  • 改变ros bag 中消息的frame_id 和话题名

    1 改变话题名 参考链接 https blog csdn net ethan guo article details 80262650 rosbag play file bag foo 61 bar foo是原topic xff0c bar
  • 针对frame_id和child_frame_id的理解

    ros基础必看之各个frame的理解 ROS坐标系统 xff0c 常见的坐标系和其含义 ROS中TF 坐标系转换 原理与使用
  • Spring:基于xml和注解的aop

    1 导入坐标
  • Android 相机预览回调在 4.1 中未调用

    我有一个应用程序可以获取带有表面的相机预览帧 它可以在 Android 4 0 4 上运行 但更新后在同一设备上无法与 Jelly Bean 4 1 2 一起运行 简单来说 回调永远不会被回调 这是代码 剪了一点 public class
  • 如何在 Java 中解析和验证 WebSocket 帧?

    我用Java编写了一个WebSocket帧解码器 private byte decodeFrame byte rawIn int maskIndex 2 byte maskBytes new byte 4 if rawIn 1 byte 1
  • iOS 逐帧视频向前/向后播放

    我想在 iOS 设备上以慢动作播放视频 我的视图包含一个视频 约 2 秒长 和一个滑块 用户可以移动滑块并逐帧 向前和向后 浏览电影 MPMoviePlayerController缺乏逐帧步进的能力 我读到MVAssetReader 但我不
  • 在 tkinter 中的两个框架之间切换?

    我已经构建了我的前几个脚本 上面有一个漂亮的小 GUI 正如教程所示 但它们都没有解决如何处理更复杂的程序 如果您有一个带有 开始菜单 的东西 用于您的打开屏幕 并且根据用户选择 您移动到程序的不同部分并适当地重绘屏幕 那么执行此操作的优雅
  • 为什么这段代码的JTextArea占据了整个JFrame?

    我希望框架的一部分包含 JTextArea 但它完全占据了 我无法在这里追踪错误 import java awt import javax swing public class EchoServer public static void m
  • boundingRectWithSize 不考虑自动换行

    我创建一个 UITextView 向其中添加文本 然后将其放入视图中 使用容器 UITextView lyricView UITextView alloc initWithFrame screen lyricView text NSStri
  • Android-在两个视图之间绘制线

    下面是我的程序 我在框架中创建了三个新视图 单击两个不同的视图时 我想在视图之间画一条线 我正在尝试弄清楚如何做到这一点 Ball ball1 new Ball this 100 100 45 Ball ball2 new Ball thi
  • 当我们调整窗口大小时,Container 中的元素如何调整?

    下面是一个窗口的代码 当用户单击一个按钮时 该窗口会更改颜色 并在单击另一个按钮时更改标签的文本 它有两个按钮 一个用于保存按钮的面板 一个标签和一个用于图形的面板 概念解释 首先 我添加了label to the North的一部分fra
  • 为什么我无法在 Swift 中更改视图的框架大小?

    所以这是我遇到过的最奇怪的事情 我添加一个简单的UIView在一个UIView on an UIViewController 我将尺寸更改为 200 x 200 然后我想更改UIView的大小 将这行代码放入viewDidLoad meth
  • 在 iPhone 中重新定位后,框架/窗口尺寸“不正确”

    在我的 iPhone OS 应用程序中 我想要 需要 观察设备方向的变化 以便重新排列屏幕的某些部分 我使用的方法是使用CGRect frame UIScreen mainScreen applicationFrame获取屏幕尺寸 并从那里
  • ios 7 UiView 框架问题

    我在 iOS6 和 iOS7 中运行相同的应用程序 其中有导航栏 它在 iOS6 上运行良好 但在 iOS7 中 所有视图都有点向上 就像根本没有考虑导航栏一样 我尝试更改模拟指标选项中的顶栏属性 但它不起作用 在 iOS6 中 它从导航栏
  • 如何呈现更小的视图控制器

    我想要以比屏幕更小的尺寸呈现视图控制器 vc2 如何在 Swift 3 中做到这一点 感谢帮助 这是我的代码 IBAction func leftButtonPressed sender UIButton let vc2 self stor
  • 如何从框架中获取页面实例?

    我有一个在 xaml 中初始化的框架 如下所示
  • 如何通过我的切换帧函数将 Tkinter 条目值从一个帧传递到另一个帧

    我的 Tkinter 应用程序添加了笔记本 在笔记本内我想使用按钮切换框架 实现了笔记本开关和框架开关 当我单击 确定 按钮时 我想将笔记本的一帧输入输入到另一帧enter code here 我尝试将值作为框架类初始化的参数传递 将输入字
  • Swift 使滚动视图内容居中

    当用户当前位置移至屏幕框架之外时 我尝试将滚动视图视图居中并移动框架 目前我有一个 PDF 正在显示用户的当前位置 我正在计算框架和滚动视图的 ZoomScale 以在 PDF 视图上显示当前位置 我已经实现了这个功能 它运行完美 当用户移
  • sizeWithFont: constrainedToSize: with UITextView (有时) 没有创建正确的高度 - iPhone

    我使用以下代码来确定所需的高度UITextView正在添加到UITableViewCell 并确定每个的高度UITableViewCell 这在 90 的情况下有效 但某些传入数据 始终是相同的传入数据 会出现不足 如果我允许在UIText

随机推荐

  • openwrt python_Openwrt python,openwrt上使用Python

    需要安装libffi python mini python libffi以及python mini需要安装在python之前 wget c http downloads openwrt org cn backfire 10 03 1 brc
  • fedora上编译运行C文件

    include
  • 达梦管理工具连接远程达梦数据库报6001错误,但是disql可以连接

    问题 使用达梦客户端工具访问服务连接 总是报6001错误 已排除如下问题 1 服务器防火墙限制 2 达梦数据库服务没启动 可以使用 disql testuser 123456 192 168 1 22 5236命令连接 3 最大会话限制 数
  • MyBatis 中的插件如何实现

    MyBatis 是一款优秀的 Java 持久层框架 它提供了许多方便开发的功能 其中包括插件 插件可以用于修改 MyBatis 的默认行为 增强其功能 在 MyBatis 中 我们可以使用 Interceptor 接口和 Intercept
  • 海森矩阵(Hessian matrix)

    转自 http hi baidu com imheaventian item c8591b19907bd816e2f98612 在数学中 海森矩阵 Hessian matrix 或 Hessian 是一个自变量为向量的实值函数的二阶偏导数组
  • python3 pygame_利用python3 的pygame模块实现塔防游戏

    利用python3的pygame模块基本实现塔防游戏的基本功能 包括血量和分数显示 bgm 防御塔建造 防御塔攻击范围内的敌军 暂停和加速功能 由于实在没有素材 用的都是自己截图P的 所以美化不好 但基本保证功能 其中有一个BUG 但不影响
  • linux基础命令操作

    1 将 etc下面所有的文件 文件名是a m开头的 并且是以 conf结尾的文件复制到 data目录下 2 定义一个别名copy 要求当所有用户执行copy时 执行的是以下操作cp r etc root etc 年月日 要求永久生效 年月日
  • 备忘录之在jsp页面中获取链接,url,传递的参数

    如 url szy wsm jsp doJump2 jsp id 666 可以通过jsp页面在head标签之上写入如下代码 在方法中使用 function page mouseenter function var id
  • Unity3D——在Unity3D中使用关键帧动画的注意事项

    1 记录Animation动画复位的一个注意事项 最近想做一个动画的分步播放 但是在实现动画复位时发现以前用的动画复位的代码不起作用了 Animation AnimationObj GetComponent
  • DLLNotFoundException:xxx tolua... 错误打印

    一 DLLNotFoundException介绍 首先区分一个问题只要是与DLLNotFoundException相关的必然是丢失了DLL文件 不管是安卓还是Window还是Mac原理都是一样的 二 Plugins文件夹 既然是跟DLLNo
  • docker 安装 nginx-proxy-manager

    一 拉取镜像 docker pull jc21 nginx proxy manager 二 部署运行 docker run restart always name nginxmanager d p 80 80 p 81 81 p 443 4
  • Ubuntu14.04 安装Android studio

    Ubuntu14 04 安装Android studio Android Studio 官方 Android IDE Android Studio 提供用于为各类 Android 设备开发应用的最快速的工具 利用世界一流的代码编辑 调试 性
  • Linux字符设备驱动file_operations详解

    struct file operations struct file operations在Fs h这个文件里面被定义的 如下所示 struct file operations struct module owner 拥有该结构的模块的指针
  • Js中的枚举

    原文见 Js中的枚举 在JavaScript目前的版本中 没有枚举这个概念 当然 ECMA 262第三版中已经将enum作为关键字保留 然而 如同JavaScript中没有class一样 但我们仍然可以通过间接的方式 JSON来实现它 如下
  • 合并Dwg文件

    尝试用 NET平台C 写个打开其他DWG文件并读取所有内容 打包成块后再插入当前文档的程序 1 打开其他指定文件没问题 2 打包成块程序这里出了问题3 但若是直接在当前文档创建直线 再运行打包成块程序就没问题 不知道是何原因 可有大神出来指
  • 快手磁力金牛和小店通的区别

    手磁力金牛平台是全新电商营销平台磁力金牛 磁力金牛平台将集合快手粉条 小店通 真正打通公域私域流量 实现全站数字化营销 核心提示 磁力金牛平台整合了小店通 粉条的投放链路 公域私域流量融合 磁力金牛平台整合了小店通 粉条的投放链路 公域私域
  • win7 svn服务器搭建过程

    svn简介 https baike baidu com item subversion 7818587 fr aladdin SVN服务端分为 Subversion和VisualSVN Server 这里 我选择了VisualSVN Ser
  • Java笔记:UDP基础使用与广播

    文章目录 目的 作为客户端使用 作为服务器使用 广播 广播地址获取 广播功能演示 总结 目的 UDP是比较基础常用的网络通讯方式 这篇文章将介绍Java中UDP基础使用的一些内容 本文中使用 Packet Sender 工具进行测试 其官网
  • Java使用DES加密解密

    一 DES算法 DES Data Encryption Standard 数据加密标准 它是由IBM公司研制的一种对称密码算法 DES是一个分组加密算法 典型的DES以64位分组对数据加密 加密和解密用的是用一个算法 总长度64位 8字节
  • Spring:基于xml文件的控制反转(ioc)

    1 环境搭建 导入spring使用最基本的坐标