有两种用法,一种是直接吧方法的返回值注入到实例的属性,二是用返回值定义成Bean
定义实体:
public class Person ... {
private Son son;
private String age;
public String getAge() ...{
return age;
}
public void setAge(String age) ...{
this.age = age;
}
public Son getSon() ...{
return son;
}
public void setSon(Son son) ...{
this.son = son;
}
}
package Bean.superIOCmethod;
public class Son ... {
private String age;
public String getAge() ...{
return age;
}
public void setAge(String age) ...{
this.age = age;
}
}
public static final String TEST_FIELD="welcom";
public String getValue(){
return "test";
}
public static String getStaticValue(){
return "static test";
}
}
配置文件:
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
< beans >
<!-- 非静态方法,使用targetObject -->
< bean id ="son" class ="Bean.superIOCmethod.Son" >
< property name ="age" >
< bean class ="org.springframework.beans.factory.config.MethodInvokingFactoryBean" >
< property name ="targetObject" >
< ref local ="value" />
</ property >
< property name ="targetMethod" >
< value > getValue </ value >
</ property >
</ bean >
</ property >
</ bean >
<!-- 静态方法,无需使用targetObject,但要配置targetClass -->
< bean id ="staticson" class ="Bean.superIOCmethod.Son" >
< property name ="age" >
< bean class ="org.springframework.beans.factory.config.MethodInvokingFactoryBean" >
< property name ="targetClass" >
< value > Bean.superIOCmethod.Field </ value >
</ property >
< property name ="targetMethod" >
< value > getStaticValue </ value >
</ property >
</ bean >
</ property >
</ bean >
<!-- 将方法返回值定义成Bean -->
< bean id ="sysProps" class ="org.springframework.beans.factory.config.MethodInvokingFactoryBean" >
< property name ="targetClass" >
< value > java.lang.System </ value >
</ property >
< property name ="targetMethod" >
< value > getProperties </ value >
</ property >
</ bean >
< bean id ="javaversion" class ="org.springframework.beans.factory.config.MethodInvokingFactoryBean" >
< property name ="targetObject" >
< ref local ="sysProps" />
</ property >
< property name ="targetMethod" >
< value > getProperty </ value >
</ property >
< property name ="arguments" >
< list >
< value > java.version </ value >
</ list >
</ property >
</ bean >
< bean id ="value" class ="Bean.superIOCmethod.Field" >
</ bean >
</ beans >
测试代码:
String path=new Test().getClass().getResource("/").getPath();
String realpath=path.substring(1, path.length());
ApplicationContext context=new FileSystemXmlApplicationContext(realpath+"/superIOCmethod.xml");
Son son1=(Son)context.getBean("son");
Son son2=(Son)context.getBean("staticson");
System.out.println("person age is:"+son1.getAge());
System.out.println("person age is:"+son2.getAge());
System.out.println(context.getBean("sysProps"));
System.out.println(context.getBean("javaversion"));
}
person age is:test
person age is:static test
{java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition, sun.boot.library.path=D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/bin, java.vm.version=1.5.0_08-b03, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=;, java.vm.name=Java HotSpot(TM) Client VM, file.encoding.pkg=sun.io, user.country=CN, sun.os.patch.level=Service Pack 2, java.vm.specification.name=Java Virtual Machine Specification, user.dir=E:/my/TestSpring, java.runtime.version=1.5.0_08-b03, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/lib/endorsed, os.arch=x86, java.io.tmpdir=C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/, line.separator=
, java.vm.specification.vendor=Sun Microsystems Inc., user.variant=, os.name=Windows XP, sun.jnu.encoding=GBK, java.library.path=D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/bin;.;C:/WINDOWS/system32;C:/WINDOWS;d:/sybase/CFG-1_0/bin;d:/sybase/OCS-12_5/dll;d:/sybase/OCS-12_5/lib3p;d:/sybase/OCS-12_5/bin;d:/sybase/ASE-12_5/dll;d:/sybase/ASE-12_5/bin;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;d:/Program Files/Sybase/SQL Anywhere 8/win32;d:/Program Files/Sybase/Shared/win32;d:/Program Files/Sybase/Shared/Sybase Central 4.1;d:/Program Files/Sybase/PowerDynamo/win32;d:/Program Files/Sybase/Shared/PowerBuilder;d:/Program Files/Sybase/InfoMaker 9.0/Tutorial;d:/Program Files/Sybase/Shared/Web Targets;;d:/sybase/SQLRemote/dll;D:/Program Files/Rational/common;D:/java/jdk1.4/bin, java.specification.name=Java Platform API Specification, java.class.version=49.0, sun.management.compiler=HotSpot Client Compiler, os.version=5.1, user.home=C:/Documents and Settings/Administrator, user.timezone=Asia/Shanghai, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=GBK, java.specification.version=1.5, java.class.path=E:/my/TestSpring/WebRoot/WEB-INF/classes;E:/my/TestSpring/WebRoot/WEB-INF/lib/jstl.jar;E:/my/TestSpring/WebRoot/WEB-INF/lib/standard.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/spring-core.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/spring-beans.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/spring-context.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-attributes-api.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-attributes-compiler.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-beanutils.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-collections.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-digester.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-lang.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-logging.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/dom4j/dom4j-1.6.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/dom4j/jaxen-1.1-beta-4.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/log4j/log4j-1.2.13.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/spring-aop.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/cglib/cglib-nodep-2.1_3.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/spring-dao.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/spring-hibernate.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/spring-jdbc.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/spring-orm.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/antlr/antlr-2.7.5H3.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-dbcp.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-pool.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/c3p0/c3p0-0.9.0.4.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/ehcache/ehcache-1.1.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/hibernate/hibernate3.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/hibernate/hibernate-annotations.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/ibatis/ibatis-sqlmap.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/ibatis/ibatis-sqlmap-2.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/ibatis/ibatis-common-2.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jdo/jdo2.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jotm/jotm.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jotm/xapool.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/ojb/db-ojb-1.0.4.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/toplink/toplink-api.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/spring-web.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/spring-webmvc.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/cos/cos.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-fileupload.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jakarta-commons/commons-httpclient.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/oro/jakarta-oro-2.0.8.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/velocity/velocity-1.4.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/velocity/velocity-tools-generic-1.2.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/velocity/velocity-tools-view-1.2.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/freemarker/freemarker.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/itext/itext-1.3.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jasperreports/jasperreports-1.0.3.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/poi/poi-2.5.1.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.springframework_5.1.0/data/1.2/lib/dependencies/jexcelapi/jxl.jar, user.name=Administrator, java.vm.specification.version=1.0, java.home=D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre, sun.arch.data.model=32, user.language=zh, java.specification.vendor=Sun Microsystems Inc., awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, java.version=1.5.0_08, java.ext.dirs=D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/lib/ext, sun.boot.class.path=D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/lib/rt.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/lib/i18n.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/lib/sunrsasign.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/lib/jsse.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/lib/jce.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/lib/charsets.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/jre/classes;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_5.1.0/data/libraryset/1.4/activation.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_5.1.0/data/libraryset/1.4/javax.servlet.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_5.1.0/data/libraryset/1.4/javax.servlet.jsp.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_5.1.0/data/libraryset/1.4/jboss-j2ee.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_5.1.0/data/libraryset/1.4/jboss-jaxrpc.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_5.1.0/data/libraryset/1.4/jboss-jsr77.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_5.1.0/data/libraryset/1.4/jboss-saaj.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_5.1.0/data/libraryset/1.4/mail.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_5.1.0/data/libraryset/1.4/namespace.jar;D:/Program Files/MyEclipse Enterprise Workbench 5.1.0 GA/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_5.1.0/data/libraryset/1.4/xml-apis.jar, java.vendor=Sun Microsystems Inc., file.separator=/, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, sun.desktop=windows, sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86}
1.5.0_08