Spring XML配置文件以beans为根元素并引入XSD约束,通过定义组件,支持setter/构造注入、scope作用域、init/destroy方法及lazy-init延迟加载。

Spring的XML配置文件核心是定义Bean及其依赖关系,用标签声明组件,配合xmlns命名空间支持自动补全和校验。虽然现在主流用Java Config或注解,但老项目、复杂条件装配或第三方集成仍常需XML方式。
基础结构:声明命名空间与根节点
一个合法的Spring XML配置文件必须包含beans根元素,并引入Spring的XSD约束。最简模板如下:
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
注意:xsi:schemaLocation中的URL要准确,IDE(如IntelliJ或Eclipse)靠它提供语法提示和校验。
定义Bean:id、class与基本属性
每个代表一个由Spring容器管理的对象。必需指定class(全限定类名),推荐设置id(唯一标识符,用于引用):
-
id="userService":字符串ID,不能含特殊字符,推荐小写字母+驼峰 -
class="com.example.service.UserServiceImpl":必须是具体类,不能是接口 - 不写
id时可只用name,支持别名,如name="userSvc, userService"
示例:
注入依赖:property与constructor-arg
Spring通过setter方法或构造函数完成依赖注入。两种常用方式:
-
setter注入:用
调用同名setter方法,ref指向另一个Bean的id -
构造注入:用
按参数顺序传入,或加index="0"、type="java.lang.String"明确匹配
示例(setter注入):
高级配置:作用域、初始化与延迟加载
Bean默认是单例(scope="singleton"),还可设为每次获取都新建(prototype);常用控制项包括:
-
scope="prototype":每次getBean()返回新实例 -
init-method="init":指定初始化回调方法(无参、public、void) -
destroy-method="close":容器关闭前调用(仅singleton有效) -
lazy-init="true":延迟加载,首次getBean()才创建(默认false)
示例:
scope="prototype"
init-method="connect"
destroy-method="disconnect"
lazy-init="true" />










