Spring高级注入之Method值注入

有两种用法,一种是直接吧方法的返回值注入到实例的属性,二是用返回值定义成Bean

定义实体:

 

package  Bean.superIOCmethod;

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;
}

}
 
package Bean.superIOCmethod;
public class Field {
   public static final String TEST_FIELD="welcom";
   public String getValue(){
    return "test";
   }
   public static String getStaticValue(){
    return "static test";
   }
}


配置文件:

 

<? xml version="1.0" encoding="UTF-8" ?>
<! 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 >

测试代码: 

public   static   void  main(String[] args)  throws  Exception  {
        
        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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值