<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="teacher"class= "org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="staticMethod"> <value>com.teacher.Teacher.setStudentDao</value> </property> <property name="arguments"> <list> <ref bean="studentDao" /> </list> </property> </bean> <bean id="studentDao" class="com.teacher.StudentDao"> </bean> </beans> |
package com.teacher; public class Teacher { private static StudentDao studentDao; public static String setStudentDao(StudentDao stuDao) { Teacher.studentDao = stuDao; return "hello world"; } }
package com.teacher; public class StudentDao {} |
package com.teacher; import org.springframework.test.
public class Test extends
@Override protected String[] getConfigLocations() { return new String[]{"applicationContext.xml"}; } public void test(){ Object o=getApplicationContext().getBeanFactory() .getBean("teacher"); System.out.println(o); } }
|
MethodInvokingFactoryBean 调用指定的方法 并且得到返回值作为bean对象,如果是void方法,则返回null;