Spring 简化装配Bean的配置方式
2020-12-13 02:41
标签:com 一个 tor 用户 方式 def ebean java autowire 简化配置方式 Spring 为字面值、引用 Bean 和集合都提供了简化的配置方式。如果没有用到完整配置格式的特殊功能,用户大可使用简化的配置方式。下面分别为上面提及的配置内容给出简化前和简化后的版本。 1.字面值属性 如果使用简化的方式,则将无法使用 处理XML特殊字符,只能用XML转义序列对特殊字符进行转换。 2.引用对象属性 3.使用 p 命名空间 为了简化 XML 文件的配置,越来越多的 XML文件采用属性而非子元素配置信息。Spring 从2.5版本开始引入了一个新的 p 命名空间,可以通过 使用 p 命名空间前 使用 p 命名空间后 未采用 p 命名空间前, 对于字面值属性,其格式为:p:="xxxx" 对于引用对象的属性,其格式为:p:-ref="xxxx" 正是由于 p 命名空间中的属性名是可变的,所以 p 命名空间没有对应的 Schema 定义文件,也就无须在 xsi:schemaLocation 中为 p 命名空间指定 Schema 定义文件。 自动装配 Spring Ioc 容器知道所有 Bean 的配置信息,此外,通过 Java 反射机制还可以获知实现类的结构信息,如构造函数方法的结构、属性等信息。掌握所有 Bean 的这些信息后,Spring Ioc 容器就可以按照某种规则对容器中的 Bean 进行自动装配,而无须通过显式的方式进行依赖配置。Spring 为厌恶配置的开发人员提供了一种轻松的方法,可以按照某些规则进行 Bean 的自动装配。 根据名称进行自动匹配。假设Boss有一个名为car的属性,如果容器中刚好有一个名为car的Bean, 根据类型进行自动匹配。假设Boss有一个car类型的属性,如果容器中刚好有一个Car类型的 与ByType类似,只不过它是针对构造函数注入而言的。如果Boss有一个构造函数,构造函数包 根据Bean的自省机制决定采用byType还是constructor进行自动装配。如果Bean提供了默认的构 自动装配以四两拨千斤的方式完成容器中 Bean 之间的装配工作,这种省心省力的自动装配机制确实省却了大量配置工作。在实际开发中,XML 配置方式很少启用自动装配功能,而基于注解的配置方式默认采用 byType 自动装配策略。 Spring 简化装配Bean的配置方式 标签:com 一个 tor 用户 方式 def ebean java autowire 原文地址:https://www.cnblogs.com/jwen1994/p/11037496.html
简化前
简化后
字面值属性
构造函数参数
集合元素
简化前
简化后
字面值属性
构造函数参数
集合元素
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-4.0.xsd">
bean id="car" class="com.smart.ditype.Car">
property name="brand" value="红旗&CA72"/>
property name="maxSpeed" value="200"/>
property name="price" value="20000.00"/>
bean>
bean id="boss" class="com.smart.ditype.Boss">
property name="car" ref="car"/>
bean>
beans>
xml version="1.0" encoding="UTF-8" ?>
beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
bean id="car" class="com.smart.ditype.Car"
p:brand="红旗&CA72"
p:maxSpeed="200"
p:price="20000.00"/>
bean id="boss" class="com.smart.ditype.Boss"
p:car-ref="car"/>
beans>
自动装配类型
说明
byName
Spring就会自动将其装配给Boss的car属性
byType
Bean,Spring就会自动将其装配给Boss的这个属性
constructor
含一个Car类型的入参,如果容器中有一个Car类型的Bean,则Spring将自动把这个Bean作为Boss
构造函数的入参;如果容器中没有找到和构造函数入参匹配类型的Bean,则Spring将抛出异常
autodetect
造函数,则采用byType:否则采用constructor
上一篇:Jquery Ajax
下一篇:c#如何禁用win7的任务管理器