【Spring 从0开始】IOC容器的Bean管理 - 基于XML,创建对象、注入属性

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 【Spring 从0开始】IOC容器的Bean管理 - 基于XML,创建对象、注入属性

Bean 管理其实就是指spring 的2个操作:创建对象、注入属性。


创建对象在之前的文章里都有操作过,那这个注入属性也很好理解。


比如类有一个属性private String userName;,如果我要对这个属性设值,那么这个类可以提供 set() 方法,以供调用。


而这个过程,现在也交由 spring 管理,叫做注入属性。


spring 对于 Bean 管理有两种方式:基于XML配置文件方式、基于注解方式,本篇为基于XML配置文件方式。


一、创建对象


1). 在配置文件里通过 bean 标签来创建。


1268169-20210628064849258-2085886176.png


2). 这里有2个属性:


  • id:这个指对象的别名,通过这个名字可以获取到对象。
  • class:要创建的对象所在类全路径,比如图里的"com.pingguo.spring5.User"


3). 在创建对象的时候,默认执行无参构造方法。


1268169-20210628065602342-1431616258.png


二、注入属性


也叫 DI,依赖注入。这个需要在创建对象的基础之上来完成。


1). 使用set方法注入


1268169-20210628070429114-543119936.png


有了 set 方法后,现在可以在 XML 配置文件里注入属性的值,通过 property 标签:


1268169-20210628071521985-2014971093.png


  • name:类的属性名称
  • value:要注入的值


测试一下效果,我在 Book 类里新增一个 testBook() 方法,打印出注入的 bookName 的值,然后在测试函数里调用。


1268169-20210628072141658-197582118.png


运行结果:


1268169-20210628072159693-562552178.png


2). 通过有参数构造注入


1268169-20210628072638840-582399381.png


我直接修改了之前的示例代码,定义好类的属性,以及对应的有参构造方法后,可以在配置文件里进行注入。


使用 constructor-arg 标签:


1268169-20210628072848295-227130241.png


  • name:类的属性名称
  • value:要注入的值


再次执行测试代码,查看结果是正确的。


1268169-20210628073057330-380804933.png


3). 注入空值null


如果要给熟悉注入空值null,可以这样写:


1268169-20210628075052367-803404989.png


运行后的结果:


1268169-20210628075111404-415589228.png


4). 注入特殊符号


如果我要注入带有特殊符号的值,比如<<把苹果咬哭的测试笔记>>,要使用<![CDATA[]]>


1268169-20210628075422846-1438958627.png


相关文章
|
16天前
|
缓存 Java Spring
实战指南:四种调整 Spring Bean 初始化顺序的方案
本文探讨了如何调整 Spring Boot 中 Bean 的初始化顺序,以满足业务需求。文章通过四种方案进行了详细分析: 1. **方案一 (@Order)**:通过 `@Order` 注解设置 Bean 的初始化顺序,但发现 `@PostConstruct` 会影响顺序。 2. **方案二 (SmartInitializingSingleton)**:在所有单例 Bean 初始化后执行额外的初始化工作,但无法精确控制特定 Bean 的顺序。 3. **方案三 (@DependsOn)**:通过 `@DependsOn` 注解指定 Bean 之间的依赖关系,成功实现顺序控制,但耦合性较高。
实战指南:四种调整 Spring Bean 初始化顺序的方案
|
1月前
|
XML Java 数据格式
Spring从入门到入土(bean的一些子标签及注解的使用)
本文详细介绍了Spring框架中Bean的创建和使用,包括使用XML配置文件中的标签和注解来创建和管理Bean,以及如何通过构造器、Setter方法和属性注入来配置Bean。
70 9
Spring从入门到入土(bean的一些子标签及注解的使用)
|
1月前
|
Java 测试技术 Windows
咦!Spring容器里为什么没有我需要的Bean?
【10月更文挑战第11天】项目经理给小菜分配了一个紧急需求,小菜迅速搭建了一个SpringBoot项目并完成了开发。然而,启动测试时发现接口404,原因是控制器包不在默认扫描路径下。通过配置`@ComponentScan`的`basePackages`字段,解决了问题。总结:`@SpringBootApplication`默认只扫描当前包下的组件,需要扫描其他包时需配置`@ComponentScan`。
|
1月前
|
XML Java 数据格式
Spring IOC容器的深度解析及实战应用
【10月更文挑战第14天】在软件工程中,随着系统规模的扩大,对象间的依赖关系变得越来越复杂,这导致了系统的高耦合度,增加了开发和维护的难度。为解决这一问题,Michael Mattson在1996年提出了IOC(Inversion of Control,控制反转)理论,旨在降低对象间的耦合度,提高系统的灵活性和可维护性。Spring框架正是基于这一理论,通过IOC容器实现了对象间的依赖注入和生命周期管理。
70 0
|
1月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
59 1
|
3月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
14天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
67 8
|
1月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
26 3
|
5月前
|
XML Java 数据格式
java创建xml文件内容
java创建xml文件内容
|
5月前
|
XML Java 数据格式
java解析xml文件内容
java解析xml文件内容
下一篇
无影云桌面