5.Spring-使用XML Schema简化配置
本文最后更新于2024.04.28-04:14
,某些文章具有时效性,若有错误或已失效,请在下方留言或联系涛哥。
1.命名空间
由于XML文件中,各类标签可能存在冲突,我们引入了命名空间的概念来解决冲突。
xmlnamespace
3.使用p:命名空间 来简化 设值注入
a.在beans加入 p命名空间的配置(使用xsd作为配置) xmlns:p="http://www.springframework.org/schema/p"
b.在bean中 可以不在使用property标签,而是直接 p:属性名="属性值"
的形式进行标量的设值注入 p:cName="奔驰" p:属性名-ref="beanId(Name)"的形式进行设值注入
<bean id="lover" class="com.edu.bean.Lover"></bean>
<bean id="user" class="com.edu.bean.User" p:cName="奔驰" p:lover-ref="lover">
4.使用c:命名空间来 简化 构造注入
a.在beans加入 xmlns:c="http://www.springframework.org/schema/c"
b:在bean中 可以不在使用 <constructro-arg> 标签,而是直接使用 c:构造方法参数名="属性值"
标量 c:构造方法参数名-ref ="beanId(name)" 复合型的形式来进行 构造注入
。
<bean id="lover" class="com.edu.bean.Lover"></bean>
<bean id="user" class="com.edu.bean.User" p:cName="奔驰" p:lover-ref="lover">
5.使用util命名空间 来简化配置(自学)
a.在beans加入 xmlns:util="http://www.springframework.org/schema/util"
b.在bean中 使用 <util: constant />
,<util:property-path/>
,<util:list/>
,<util:map/>
,<util:set/>
,<util:properties/>
util给我们提供了以下几个属性:
-
constant:对于在配置文件中获取指定类的静态Field的值的一个简化配置,是FieldRetrievingFactoryBean的简化配置。
-
property-path:对于在配置文件中获取调用getter方法的一个简化配置,是PropertyPathFactoryBean的简化配置。
-
list:简化list作为bean的配置
-
id:该属性指定定义一个名为id的List bean实例。
-
list-calss:该属性指定spring使用哪个List实现类来创建bean实例。默认使用ArrayList作为实现类。
-
scope:指定该List bean实例的作用域。
-
-
map:简化map作为bean的配置
-
id:该属性指定定义一个名为id的Map bean实例。
-
map-calss:该属性指定spring使用哪个Map实现类来创建bean实例。默认使用HashMap作为实现类。、
-
scope:指定该Map bean实例的作用域。
-
-
set:简化set作为bean的配置
-
id:该属性指定定义一个名为id的Set bean实例。
-
set-calss:该属性指定spring使用哪个Set实现类来创建bean实例。默认使用HashSet作为实现类。
-
scope:指定该Set bean实例的作用域。
-
-
properties:加载一份properties属性文件
-
id:该属性指定定义一个名为id的Properties bean实例。
-
localtion:该属性指定资源文件的位置。
-
scope:指定该Properties bean实例的作用域。
-
<bean id="circle" class="cn.itcast.spring._other.Circle">
<property name="pi">
<util:constant static-field="java.lang.Math.PI"/>
</property>
</bean>
<!-- 使用util:constant将指定类的静态Field定义成容器中的Bean -->
<util:constant id="chin.age" static-field="java.sql.Connection.TRANSACTION_SERIALIZABLE"/>
<!-- id值为PI的Bean,其值将会是circle.pi -->
<util:property-path id="PI" path="circle.pi"/>
<!-- 使用util.properties加载指定资源文件 -->
<util:properties id="confTest"location="classpath:test_zh_CN.properties"/>
<!-- 使用util:list定义一个List集合,指定使用LinkedList作为实现类,如果不指定默认使用ArrayList作为实现类 -->
<util:list id="chin.schools" list-class="java.util.LinkedList">
<!-- 每个value、ref、bean...配置一个List元素 -->
<value>小学</value>
<value>中学</value>
<value>大学</value>
</util:list>
<!-- 使用util:set定义一个Set集合,指定使用HashSet作为实现类,如果不指定默认使用HashSet作为实现类-->
<util:set id="chin.axes" set-class="java.util.HashSet">
<!-- 每个value、ref、bean...配置一个Set元素 -->
<value>字符串</value>
<bean class="org.crazyit.app.service.impl.SteelAxe"/>
<ref bean="stoneAxe"/>
</util:set>
<!-- 使用util:map定义一个Map集合,指定使用TreeMap作为实现类,如果不指定默认使用HashMap作为实现类 -->
<util:map id="chin.scores" map-class="java.util.TreeMap">
<entry key="数学" value="87"/>
<entry key="英语" value="89"/>
<entry key="语文" value="82"/>
</util:map>
6.其他简化配置简单介绍
-
Spring-aop.xsd:简化Spring AOP配置
-
Spring-jee.xsd:简化Spring的Java EE配置
-
Spring-jms.xsd:简化Spring关于JMSde 配置
-
Spring-lang.xsd:简化Spring动态语言配置
-
Spring-tx.xsd:简化Spring事务配置
作者:涛哥
链接:https://ltbk.net/back/spring_family/spring/article/888.html
文章版权归作者所有,未经允许请勿转载。