Spring.xml 标签配置补充
来源:互联网 发布:windows ce导航刷机 编辑:程序博客网 时间:2024/06/08 19:30
使用ref来引用容器中其他对象实例,可以通过ref的local,parent,bean属性来指定引用的对象的beanName是什么
对parent属性的说明:
BeanFactory可以分层次,通过实现HierarchicalBeanFactory接口,容器A在初始化的时候可以首先加载容器B中的所有对象定义,然后加载自身的对象定义
使用示例
<constructor-arg><ref parent="djNewsPersister"/></constructor-arg>
如果要往当前对象注入锁依赖的对象的名称而不是引用,那么通常可以使用value来完成
<property name="newsListenerBeanName"> 3 <value>djNewsListener</value></property>
但是上面的情况可能会存在输错字,使用idref可以检查这个beanname所在的bean是否存在
<property name="newsListenerBeanName"> 3 <idref>djNewsListener</idref></property>
bean可以作为内部bean标签
<constructor-arg index="0"> <bean class="com.xxx.pojo.Student" /></constructor-arg>
depends-on属性
spring容器会根据ref属性来指定bean的依赖,如果有时候没有使用ref标签就要使用depends-on属性来决定依赖关系
<bean id="bean1" class="...ClassA" depends-on="bean1,bean2"/><bean id="bean2" class="..."/><bean id="bean3" class="..."/>
autowire
指定当前bean采用某种类型的自动绑定模式
但是要注意的是自动绑定只应用于“原生类型、String类型以及Classes类型以外”的对象类型,对“原生类型、String类型和Classes类型”以及“这些类型的数组”应用自动绑定是无效的。
使用示例
<bean id="beanName" class="..." autowire="no"/>
bean有5中自动绑定模式
1.no
不使用任何形式的自动绑定,完全依赖于手工明确配置各个bean之间的依赖关系
<bean id="beanName" class="..." autowire="no"/>
2.byName
按照类中声明的实例变量的名称,与XML配置文件中声明的bean定义的beanName的值进行匹配
public class Bean{ private Bean2 bean2; ...}<bean id="bean1" class="...Bean" autowire="byName"></bean><bean id="bean2" class="..."></bean>
3.byType
根据类型绑定,如果找不到相应的类型就自动报错
4.constructor
根据构造方法的参数类型进行的自动绑定
5.autodetect
这种模式是byType和constructor模式的结合体,如果对象拥有默认无参数的构造方法,容器会优先考虑byType的自动绑定模式。否则,会使用constructor模式。当然,如果通过构造方法注入绑定后还有其他属性没有绑定,容器也会使用byType对剩余的对象属性进行自动绑定。
dependency-check
该功能可以帮我们检查每个对象某种类型的所有依赖是否全部注入完成
1.none不做依赖检查
2.simple对简单类型以及相关类型的集合进行依赖检查
3.object只对引用类型进行检查
4.all将simple和object相结合
lazy-init
延迟初始化
list对应注入对象类型为java.util.List及其子类或者数组类型的依赖对象
public class MockDemoObject{ private List param1; private String[] param2; ... // 相应的setter和getter方法 ...}
<property name="param1"> <list> <value> something</value> <ref bean="someBeanName"/> <bean class="..."/> </list></property>
set对应java.util.Set或者子类的依赖对象
public class MockDemoObject{ private Set valueSet; // 必要的setter和getter方法 ...}配置类似于<property name="valueSet"> <set> <value> something</value> <ref bean="someBeanName"/> <bean class="..."/> <list> ... </list> </set></property>
map使用entry作为其子标签
public class MockDemoObject{ private Map mapping; // 必要的setter和getter方法}<property name="mapping"> <map> <entry key="strValueKey"> <value>something</value> </entry> 8 <entry> <key>objectKey</key> <ref bean="someObject"/> </entry> <entry key-ref="lstKey"> <list> 10 ... </list> </entry> </map>< /property>
也可以这样配置
<property name="valueSet"> <map> <entry key="strValueKey" value="something"/> <entry key-ref="" value-ref="someObject"/> <entry key-ref="lstKey"> <list> ... </list> </entry> </map></property>
props是对应的类型是java.util.Properties,只能配置String类型的key,value
public class MockDemoObject{ private Properties emailAddrs; // 必要的setter和getter方法 ...}配置类似于<property name="valueSet"> <props> <prop key="author">fujohnwang@gmail.com</prop> <prop key="support">support@spring21.cn</prop> ... </props></property>
对应一个空元素
<property name="param1"> <null/> </property><property name="param2"> <null/></property>
- Spring.xml 标签配置补充
- Spring配置web.xml的<servlet>标签
- 配置spring.xml文件时tx标签报错
- Spring boot pom.xml配置中各个标签的意思
- spring中springmvc的xml配置标签总结
- spring自定义xml标签
- Spring自定义xml标签
- Spring 事务标签配置
- 自定义Spring配置标签
- spring配置标签
- web.xml配置的一些补充
- 用Properties补充hibernate.cfg.xml配置
- pom.xml中配置plugin补充
- 用Properties补充hibernate.cfg.xml配置
- Spring下自定义xml标签
- spring解析xml标签过程
- Spring第二篇和第三篇的补充【JavaConfig配置、c名称空间、装载集合、JavaConfig与XML组合】
- Spring XML配置技巧
- 二分图匹配(匈牙利算法)转载
- 协程
- 快速排序(终极版)
- bzoj1007
- 第一章作业3-链式存储结构及其操作
- Spring.xml 标签配置补充
- Centos7中搭建安装JDK环境
- JavaScript中的函数和事件
- VS2015编译eXosip2-5.0.0
- 虚函数
- 对五种排序的实现【java】
- C#上位机1 开机图片显示
- cpp: 读取输入中的多个数字
- Java中的强引用,软引用,弱引用,虚引用(Java 如何有效地避免OOM:善于利用软引用和弱引用)