Spring XML配置通过bean标签声明并管理Java对象,支持属性注入、依赖引用、集合配置、作用域控制(如singleton/prototype)、懒加载及初始化/销毁方法,需遵循XSD规范并声明命名空间。

Spring 的 XML 配置文件本质是通过 bean 标签声明 Java 对象(即 Spring 管理的组件),并由 Spring 容器负责创建、装配和生命周期管理。虽然现在主流用 Java Config 或注解(@Configuration、@Bean、@Component等),但理解 XML 配置对阅读老项目、调试原理或特定场景(如多模块 XML 拆分)仍有实际价值。
基础 bean 声明与属性注入
最简形式只需指定 id(唯一标识)和 class(全限定类名):
Spring 会调用该类无参构造器创建实例。若需设属性值,可用 property 子标签:
这等价于 new 出对象后调用 setTimeOut(3000) 和 setRetryCount(3)。注意:name 必须匹配 JavaBean 的 setter 方法名(去掉 set,首字母小写),且对应字段要有 public setter。
引用其他 bean(依赖注入)
当一个 bean 需要另一个 bean 作为成员变量时,用 ref 属性指向目标 bean 的 id:
Spring 在初始化 orderService 时,自动将已创建好的 userService 实例注入其 setUserService() 方法中。也可用 实现构造器注入,更利于不可变性和测试。
集合类型与复杂属性配置
XML 支持 list、map、set、props 等结构。例如注入字符串列表:
sendEmail notifySMS
注入 Map(key 为 String,value 为 bean 引用):
注意:嵌套结构必须放在 内部,不能直接写在 下。
作用域、懒加载与初始化控制
默认 scope 是 singleton(单例,整个容器共享一个实例)。设为 prototype 则每次 getBean() 都新建:
启用懒加载(lazy-init),让 bean 在首次被引用时才创建,而非容器启动时:
指定初始化/销毁方法(对应 @PostConstruct/@PreDestroy):
Spring 会在 bean 创建后调用 init(),关闭容器前调用 close()。
不复杂但容易忽略:XML 文件需遵循 Spring XSD 规范,开头要有命名空间声明,如:
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">










