Spring2.6高级配置、util简化配置
来源:互联网 发布:直接消耗系数矩阵 编辑:程序博客网 时间:2024/06/05 20:37
1、调用getter方法:使用PropertyPathFactoryBean。
- 调用哪个对象: setTargetObject
- 哪个getter方法: setPropertyPath(String propertyPath)
eg:
①beans.xml
②测试:
ApplicationContext appContext = new ClassPathXmlApplicationContext("beans.xml");System.out.println(appContext.getBean("username"));
③测试结果:
④简化配置:
- getter:<util:property-path .../>
- setter:<util:properties/>
需要配置命名空间:
xmlns:util="http://www.springframework.org/schema/util"
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd"
2、 访问类或对象的Field值:使用FieldRetrievingFactoryBean。
GetFieldFactoryBean即可获取静态field的值,也可获取实例field的值。(1)访问静态field:
- 调用哪个类: setTargetClass
- 哪个field: setTargetField
eg:
①beans.xml
<bean id = "getFieldBasic" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean" abstract="true"/><bean id="val1" parent="getFieldBasic"p:targetClass="java.sql.Connection"p:targetField="TRANSACTION_SERIALIZABLE"/>
②简化配置: <util:constant .../>
<util:constant id="v1" static-field="java.sql.Connection.TRANSACTION_SERIALIZABLE"/>(2)访问实例field: ————几乎没用。因为它要求被访问的实例field是public,否则会报错java.lang.NoSuchFieldException
- 调用哪个对象: setTargetObject
- 哪个field: setTargetField
eg:
①beans.xml
<bean id="puppy" class="cony.domain.Puppy" p:kind="秋田"/><bean id="puppyKind" parent="getFieldBasic"p:targetObject-ref="puppy"p:targetField="kind"/>
无简化配置
3、调用普通方法:使用MethodInvokingFactoryBean。
- 调用哪个类: setTargetClass
- 哪个方法: setTargetMethod
- 传参数: setArguments(Object[] args);
②访问实例方法
- 调用哪个对象: setTargetObject
- 哪个方法: setTargetMethod
- 传参数: setArguments(Object[] args);
eg:实现一个带有两个按钮和一个文本框的窗口
<!-- JFrame mainWin = new JFrame("我的窗口"); --><bean id="mainWin" class="javax.swing.JFrame"c:_0="我的窗口"p:visible="true"/><!-- JTextArea jta = new JTextArea(9 ,60); --><bean id="jta" class="javax.swing.JTextArea"c:_0="9"c:_1="60"/><!--mainWin.add( new JScrollPane(jta) );(使用嵌套bean) --><bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"p:targetObject-ref="mainWin"p:targetMethod="add"><property name="arguments"><list><bean class="javax.swing.JScrollPane"c:_0-ref="jta"/></list></property></bean><!-- JPanel jp = new JPanel(); --><bean id="jp" class="javax.swing.JPanel"/><!-- mainWin.add(jp , BorderLayout.SOUTH); --><bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"p:targetObject-ref="mainWin"p:targetMethod="add"><property name="arguments"><list><ref bean="jp"/><util:constant static-field="java.awt.BorderLayout.SOUTH"/></list></property></bean><!-- JButton okBn = new JButton("确定"); --><bean id="okBn" class="javax.swing.JButton"c:_0="确定"/><!-- jp.add(okBn); --><bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"p:targetObject-ref="jp"p:targetMethod="add"><property name="arguments"><list><ref bean="okBn"/></list></property></bean><!-- JButton cancelBn = new JButton("取消"); --><bean id="cancelBn" class="javax.swing.JButton" c:_0="取消"/><!-- jp.add(cancelBn); --><bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"p:targetObject-ref="jp"p:targetMethod="add"><property name="arguments"><list><ref bean="cancelBn"/></list></property></bean><!-- mainWin.pack();--><bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"p:targetObject-ref="mainWin"p:targetMethod="pack"/>util简化集合配置
list:该标签用于定义容器中的List集合,并支持通过list-class属性指定List集合的实现类。
set:该标签用于定义容器中的Set集合,并支持通过set-class属性指定Set集合的实现类。
map:该标签用于定义容器中的Map集合,并支持通过map-class属性指定Map集合的实现类。
properties:该标签用于加载一份属性文件,并根据加载的属性文件创建一个Properties Bean实例。
<bean id="dog" class="cony.domain.Puppy" p:kind="古代牧羊犬" /><bean id="dog2" class="cony.domain.Puppy" p:kind="萌萌的柯基" /><bean id="dinosaur" class="cony.domain.Dinosaur" p:kind="霸王龙"/><bean id="user" class="cony.domain.User"p:name="黄豆"p:age="21"p:dog-ref="dog"/><util:list id="list1" list-class="java.util.ArrayList"><value type="java.lang.String">你好</value><value>齐天大圣</value><bean class="javax.swing.JFrame" c:_0="myWin"/></util:list><util:set id="set1" set-class="java.util.TreeSet"><value>12</value><value>32</value><value>2</value></util:set><util:map id="map1" map-class="java.util.HashMap"><entry key="little" value-ref="dog"/><entry key="big" value-ref="dinosaur"/></util:map><util:properties id="prop1" location="classpath:abc.properties"/>
- Spring2.6高级配置、util简化配置
- spring2+hibernate3最简化配置及示例开发
- Spring2.1——自动装配、简化配置、嵌套bean、集合
- UNIX环境高级编程-环境配置(简化版)
- spring2.0 aop配置
- Spring2 quartz 配置
- hibernate3+spring2集成配置
- spring2.0_aop配置
- spring2.5 基本配置
- spring2.5 配置Perf4J
- spring2.0 事务配置
- spring2的事物配置
- Spring2.5常用配置
- spring2.5+ 配置事务
- Spring2.5.5常用配置
- Spring-注入参数详解-[通过util命名空间简化集合类型的配置]
- spring2.5之后为了简化命名空间.xml文件的配置,引入p命名空间,需要先导入命名空间
- struts2+spring2+hiberante3.2 配置 ,struts2+spring2+JPA+AJAX 配置
- 逻辑没错但是报:Cannot call sendRedirect() after the response has been committed/HTTP Status 405
- [链表]-反转单向和双向链表
- SpingBoot-HelloWorld创建
- vs2012在已有项目上生成和使用dll动态链接库
- 基于 Flask 与 MySQL 实现番剧推荐系统(1)
- Spring2.6高级配置、util简化配置
- Spring-mvc运行原理
- 使用Maven构建多模块项目
- Spark Java sortByKey二次排序及Task not serializable异常
- 导入数据库时报错1067 – Invalid default value for ‘字段名’
- java包资源路径
- java往elasticsearch(ES)中写入数据
- 利用matlab进行简单的贝叶斯网络构建
- springcloud