Spring学习笔记之基于XML的Bean装配详解(一)

10分钟快速搭建OpenClaw(基于Windows+飞书) OpenClaw 是一款功能强大的 AI 智能体工具,能够帮助用户管理邮件、日历等日常事务。本文详细介绍了在 Windows11 系统上安装和配置 OpenClaw 的完整步骤,包括 Node.js 环境搭建、Git 安装、OpenClaw 部署以及飞书机器人创建与对接。通过简单的命令行操作和可视化界面配置,用户可以快速完成 AI 助手部署,实现智能办公自动化。文中还提供了飞书机器人权限设置等关键环节的图文指引,帮助用户轻松完成系统集成。 阅读详情

基于XML的Bean装配

(1)setter注入

可为对象注入值。可为对象的属性注入值。此时需要在javabean中有setter,getter方法

例如:

 (2)构造器方式注入

为了方便操作,这里我们依旧使用Course类作为注入的对象。往Teacher类中注入

Course类。

public class Teacher {


//也要在Teacher类里面访问Course类
private Course course;
private int age;
private String name;

//使用构造函数
public Teacher(Course course,int age,String name){
this.course = course;
this.age = age;
this.name = name;

}


public void shangke(){
System.out.println("老师正在给"+age+"岁的"+name+"上"+course.name+"课"); 
}
}

//这是Teacher类中的内容这里使用了一个构造函数Teacher。

//配置文件中的内容实现注入

<bean id="teacher" class="com.niit.DI2.Teacher">
<!-- 构造函数方式注入的时候必须配置构造函数的参数 -->
<constructor-arg name="course" ref="course"></constructor-arg>
<constructor-arg name="age" value="20"></constructor-arg>
<constructor-arg name="name" value="liu"></constructor-arg>
</bean>


 

<bean id="car" class="com.auguigu.spring.beans.Car">
        <constructor-arg value="Audi" type="java.lang.String"></constructor-arg>
        <constructor-arg value="Shanghai" type="java.lang.String"></constructor-arg>
        <constructor-arg value="30000" type="int"></constructor-arg>
    </bean>
    
    <bean id="car2" class="com.auguigu.spring.beans.Car">
        <constructor-arg value="BMW" type="java.lang.String"></constructor-arg>
        <constructor-arg value="BeiJing" type="java.lang.String"></constructor-arg>
        <constructor-arg value="300.00" type="double"></constructor-arg>
    </bean>

在配置文件中配置该类的bean,并配置构造器,在配置构造器中用到了<constructor-arg>节点,该节点有四个属性:

· index是索引,指定注入的属性,从0开始,如:0代表personDao,1代表str属性;

· type是指该属性所对应的类型,如Persondao对应的是com.aptech.dao.PersonDAO;

· ref 是指引用的依赖对象;

· value 当注入的不是依赖对象,而是基本数据类型时,就用value;

<!-- 利用构造器配置依赖注入 -->
 
<bean id="personDao" class="com.aptech.dao.impl.PersonDAOImpl"></bean>
 
<bean id="personBiz" class="com.aptech.biz.impl.PersonBizImpl">
 
<constructor-arg index="0" type="com.aptech.dao.PersonDAO"ref="personDao"></constructor-arg>
 
<constructor-arg index="1" value="Spring学习"></constructor-arg>
 
</bean>

 

(3)注解方式与xml组合

以上为在applicationContext.xml配置文件中直接配置。还可以用注解的方式进行配置,以简化xml的配置内容。

在xml中添加  <context:annotation-config/>  表示  告诉Spring要用注解的方式进行配置

例如:

在Product对象的category属性前加上@Autowired注解

 

除了在属性前加上@Autowired这种方式外,也可以在setCategory方法前加上@Autowired,这样来达到相同的效果

除了@Autowired之外,@Resource也是常用的手段

其中,在Java代码中可以使用@Autowired或@Resource注解方式进行Spring的依赖注入。两者的区别是:@Autowired默认按类型装配,@Resource默认按名称装配,当找不到与名称匹配的bean时,才会按类型装配。

比如:我们用@Autowired为上面的代码UserDAO接口的实例对象进行注解,它会到Spring容器中去寻找与UserDAO对象相匹配的类型,如果找到该类型则将该类型注入到userdao字段中;

如果用@Resource进行依赖注入,它先会根据指定的name属性去Spring容器中寻找与该名称匹配的类型,例如:@Resource(name="userDao"),如果没有找到该名称,则会按照类型去寻找,找到之后,会对字段userDao进行注入。

通常我们使用@Resource。

使用注解注入依赖对象不用再在代码中写依赖对象的setter方法或者该类的构造方法,并且不用再配置文件中配置大量的依赖对象,使代码更加简洁,清晰,易于维护。

在Spring IOC编程的实际开发中推荐使用注解的方式进行依赖注入。

 

(4)自动注入 

<!-- 自动注入 -->

<bean id="course" class="com.niit.DI.Course"></bean>

<bean id="person" class="com.niit.DI3.Person" autowire="byName"> </bean>

这里的autowire属性稍微做下笔记

byName 从配置文件中查找跟被注入属性名称相同的been
  byType 按照被注入属性的类型从配置文件中查找跟被注入属性相同的类型
     注意:返回多个会异常
  default 
  constructor 按照构造函数参数的方法去查找
 

RK35X8调试YT8531单网口千兆以太网PHY芯片,修复ping不通或者IP地址丢失的问题 RK35X8上调试YT8531以太网PHY 阅读详情

相关推荐

别再纠结VS还是VSCode了!新手C#环境搭建保姆级指南(含.NET Core安装验证)

本文为C#新手提供Visual Studio与VS Code的深度对比及环境搭建指南,涵盖.NET Core安装验证、工具选择决策框架及实战配置技巧。帮助开发者根据项目需求选择合适工具,快速搭建高效开发环境,提升编码效率。

weixin_30455023的博客 561

Spring通过xml文件配置bean,并注入properties文件中的参数

Spring 通过 xml文件 配置 bean,并注入 properties 文件中的参数1、说明2、项目结构3、需要通过xml 配置的 Bean4、xml 文件中的配置 1、说明          因为对开发者更加友好便利,目前大多数项目都开始使用SpringBoot的技术。最近在维护一个老项目时用到了spring,...

STRANGE-P 的博客 7956

四、zabbix7.0推送告警至钉钉webhook机器人

2、钉钉的webhook是有安全要求的,我采用的是ip的方式,我的zabbix服务器在内网,我的网络出口有多个固定公网ip,所以这样做省事,其他方式也可以你自己考虑。下图是webhook机器人的配置。这一步,参数里面默认的跟我下图里不一样的,按我下图修改。Key是你的webhook机器人地址里的access_token=后面的内容。整个逻辑就是告警动作匹配告警媒介与用户,然后进行告警的发送。1、zabbix服务器能够访问钉钉的服务器,具体说是能访问。二、zabbix7配置报警媒介以及消息模板配置。

m0_74823715的博客 1293

Spring Bean配置方式之二:XML配置

一、bean的配置 在Spring中有三种方式来配置Bean之间的关系:XML配置文件、注解方式、Java类配置。下面讲解xml方式的配置。 1.bean的基本配置 举例 说明       12 基本类型(iTest支持的Spring版本被测bean的property可选)               name

dingqinghu的专栏 2627

Workbench-nCode下发动机引擎应力疲劳分析

在工程数据库中定义材料模型参数,结构场分析基本参数:密度7850Kg/m3、弹性模量210E9Pa、泊松比0.3,疲劳分析参数:应力-疲劳曲线表(S-N Curve),应力-疲劳曲线如下图2所示,如果没有合适的数据可使用结构钢材料进行分析。网格为四面体高阶单元,各零件的单元尺寸如下表1所示,单元质量分布如下图3所示。在workbench平台下搭建分析流程如下图6所示,前述设定完成后,提交求解后即可得到相应的应力、应变结果,更新结果后目录树中会有相应的nCode DesignLife插件,如下图7所示。

ansysxuexizhe的博客 1547

Python爬虫实战:如何优雅地处理BOSS直聘的反爬机制与Cookie失效问题

本文详细介绍了如何通过Python爬虫技术优雅应对BOSS直聘的反爬机制与Cookie失效问题。从多账号轮换、动态请求头生成到代理IP管理,提供了一套完整的解决方案,帮助开发者构建稳定高效的数据采集系统,有效提升爬虫成功率与数据质量。

weixin_30733003的博客 1562

依赖注入_配置构造注入

第一步:实体 public class Car { private String name; private Double price; ... } 第二步:配置 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema...

天蓬元帅的博客 299

OpenClaw 企业级自动化系统架构设计与实现

本文介绍基于 OpenClaw 构建的企业级自动化系统的完整架构设计、技术选型、实现细节和性能优化方案。

2604_95445636的博客 482

用XML的方式装配Bean

用XML的方式装配Bean

yu的博客 1240

C#实现不占用串口的串口监听与侦听技术:高效监控串口数据的最佳实践

本文详细介绍了如何实现不占用串口的串口监听与侦听技术,解决了传统串口监听可能带来的串口占用问题。通过使用虚拟串口、外部监听工具或第三方库,我们可以高效地实现串口数据的捕获与处理,适用于各种工业控制、物联网和嵌入式开发的应用场景。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1672

双目深度相机--10.双目视觉的主要步骤讲解分析

双目视觉技术通过模拟人眼原理,利用两个相机从不同视角采集图像,实现三维坐标计算。其核心流程包括:1)系统标定,消除相机畸变并建立坐标映射关系;2)图像同步采集与预处理;3)立体匹配,寻找左右图像对应点;4)基于视差图的深度计算;5)三维重建生成点云或网格模型;6)结果应用如目标测距、三维建模等。关键技术难点在于精确标定和准确匹配,这两步直接影响最终深度计算的精度。该技术广泛应用于自动驾驶、工业检测、VR等领域,实现了从二维图像到三维空间的精准转换。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 625

Spring Bean的装配方式 第1关:基于 XML 的 Bean 装配

基于 XML 的 Bean 装配

于建章的博客 2279

Windows 下 Hermes Agent(爱马仕)安装全记录:从零到一的保姆级图文教程

本文主要介绍了Windows 下 Hermes Agent(爱马仕) 安装全记录:从零到一的保姆级图文教程,希望能对学习使用 Hermes Agent 的同学们有所帮助。 文章目录 1. 背景 2. 实战教程 2.1 步骤一 安装WSL环境 2.2 步骤二 安装Python环境 2.3 步骤三 安装Hermes Agent 2.4 步骤四 修正 API Key 错误 2.5 步骤五 配置多个模型 2.6 步骤六 启动Hermes Agent 3. 常见问题及解决方案 4. 总结

weixin_43178406的博客 14万+

Spring学习笔记(四) --- 装配Bean之通过XML装配

本系列博客为spring In Action 这本书的学习笔记在之前的两篇博客里我们说完了自动装配和通过Java代码装配Bean, 这篇博文里我们将介绍最后一种装配Bean的方式 — 通过XML装配.1. 创建一个XML配置文件和上一篇通过Java装配Bean的博文里面一样, 我们先来看一下在自动装配中出现过的XML文件.程序1: 在CD播放器里面出现过的XML配置文件 <?xml version=

dela_的博客 656

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Spring3学习笔记(二)装配bean基于XML或基于注解

实例化方式 3种bean实例化方式:默认构造、静态工厂、实例工厂 默认构造:< bean id="" class=""> 必须提供默认构造 静态工厂: 常用与spring整合其他框架(工具) 静态工厂:用于生成实例对象,所有的方法必须是static < bean id="" class=“工厂全限定类名” factory-method=“静态方法”> ...

qq_41816516的博客 223

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Spring学习笔记,bean自动装配(xml)

Spring学习笔记,bean自动装配(xml)

weixin_47544732的博客 267

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Spring学习笔记:2(IOC装配Bean之xml方式)

xml配置方式装配Bean 一.Spring框架Bean实例化的方式提供了三种方式实例化Bean 构造方法实例化(默认无参数,用的最多) 静态工厂实例化 实例工厂实例化 代码如下: Bean1类(构造方法实例化) package com; public class Bean1 { //必须提供无参的构造函数,系统有默认无参构造函数 } Bean2类(静态工厂实例化) package com; public class Bean2 { private static Bean2 bea

小关同学的博客 189

Spring学习笔记之通过XML装配Bean的一些细节

一、c命名空间 通过构造器注入Bean的时候通常需要使用到元素,作为替代的方案,可以使用Spring的c-命名空间。c-命名空间是在Spring 3.0中加入的,它是在XML中更为简洁地描述构造器参数的方式。要使用c-命名空间,必须要在XML的顶部声明其模式,如下所示: <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc

Jeffrey的博客 324

【Spring学习笔记】7:装配bean的三种方式(自动装配,JavaConfig,XML),配置导入

跟着《Spring实战》彻底系统地学习一下Spring。 对Spring的新认识 Spring的关键 基于POJO的轻量级和最小侵入性编程。 通过DI和面向接口实现松耦合。 基于切面和惯例进行声明式编程。 通过切面和模板减少样板式代码。 所谓侵入性,就是指很多框架要求使用者继承它们的类或实现它们的接口,这样应用程序就和框架绑定死了,Spring的侵入性很小。 注意,DI或者说IoC绝...

大桔骑士的学习笔记 834

【尚硅谷】spring学习笔记(4):XML 配置里的 Bean 自动装配

XML 配置里的 Bean 自动装配在 Bean 配置文件里设置 autowire 属性进行自动装配将会装配 Bean 的所有属性. 然而, 若只希望装配个别属性时, autowire 属性就不够灵活了. autowire 属性要么根据类型自动装配, 要么根据名称自动装配, 不能两者兼而有之.一般情况下,在实际的项目中很少使用自动装配功能,因为和自动装配功能所带来的好处比起来,明确清晰的配置文档更...

猪猪 357

6 - Spring5 学习笔记 - IOC 操作 Bean 管理 xml 自动装配、外部属性文件

IOC 操作 Bean 管理 xml 自动装配 1、什么是自动装配 (1)根据指定装配规则(属性名称或属性类型),Spring 自动将匹配的属性值进行注入。 之前我们都是在 bean 标签中,通过设置 property 标签的 name 和 value 来进行属性的注入。 (2)演示自动装配的过程 普通方式 a. 创建类 public class Dept { private String deptName; public void setDeptName(String deptNam

m0_53708566的博客 189

Spring5 -- 学习笔记 - 3.IoC容器-操作Bean管理(xml自动装配)

Spring5 – 学习笔记 - 3.IoC容器    1、bean的生命周期      第一:通过构造器创建bean实例对象(调用无参构造)。

weixin_44231416的博客 228

Spring学习笔记(一)bean的配置

Spring学习笔记(一)bean的配置 1.IOC与DI IOC(Inversion of Control):其思想是反转资源获取的方向\color{blue}{反转资源获取的方向}反转资源获取的方向。传统的资源查找方式要求组件向容器发起请求查找资源。作为回应,容器适时的返回资源。而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。这种行为也被称为查找的被动形式。 DI(Dependency injection)-IOC的另一种表述方式:即组件以

qq_43366662的博客 254

Spring学习笔记(一)IoC(XML部分)

Spring学习笔记(一)IoC(XML部分)   学习Spring看的是上学堂马士兵老师的Spring2.5视频教程,里面用的Spring版本是2.5.6。前两天看完IoC部分的视频,在这里总结下笔记,留给以后用到Spring时回忆知识点。   Spring Ioc教程里面分为两个部分:Spring IoC模拟和Spring IoC使用 Spring IoC模拟   需求:需要一个增加用...

weixin_30914981的博客 97

Spring学习笔记:Bean的装配方式

学习内容:Bean的装配方式 1.

qq_49019244的博客 5261

基于 XML 的 Spring Bean 自动装配详解

核心价值:减少冗余配置,提升开发效率。关键点理解byNamebyType的区别。掌握歧义性解决方案(primary谨慎使用:避免因过度依赖自动装配导致项目维护困难。

m0_75107803的博客 1154
上一篇: SSM框架下web项目的运行流程
下一篇: 实习心得体会---SSM学习笔记之注解20190716
iamlinuxasd
博客等级 码龄10年 4粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值