`

spring开发 MethodInvokingFactoryBean的学习

 
阅读更多
通过MethodInvokingFactoryBean工厂Bean,可以将指定方法返回值注入成为目标Bean的属性值,MethodInvokingFactoryBean用来获得指定方法的返回值,该方法可以是静态方法
也可以是实例方法。
获得的方法返回值既可以被注入到指定Bean实例的指定属性,也可以直接定义成Bean实例。


可以注入到静态方法:如:
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    	<property name="staticMethod" value="org.apache.shiro.SecurityUtils.setSecurityManager" />
    	<property name="arguments" ref="securityManager" />
	</bean>


也可以是普通方法
举例:

<?xml version="1.0" encoding="GBK"?>
     <!-- Spring配置文件的根元素,使用spring-beans-3.0.xsd语义约束 -->
 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://www.springframework.org/schema/beans"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
     <!-- 定义目标Bean,后面将会获取该Bean的方法返回值 -->
     <bean id="valueGenerator" class="com.b510.app.util.ValueGenerator"></bean>
     <!-- 定义dog1的bean -->
     <bean id="dog1" class="com.b510.service.impl.DogServiceBean">
         <property name="age">
             <bean
                 class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
                 <!-- targetObject确定目标Bean,指定调用哪个Bean -->
                 <property name="targetObject" ref="valueGenerator" />
                 <!-- targetMethod确定目标方法,指定调用目标Bean的哪个方法 -->
                 <property name="targetMethod" value="getAgeValue" />
             </bean>
         </property>
     </bean>
     <!-- 定义名为dog2的Bean -->
     <bean id="dog2" class="com.b510.service.impl.DogServiceBean">
         <property name="age">
             <bean
                 class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
                 <!-- targetClass确定目标类,指定调用哪个类 -->
                 <property name="targetClass" value="com.b510.app.util.ValueGenerator" />
                 <!-- targetMethod确定目标方法,指定调用目标class的哪个方法。 
                     该方法必须是静态方法-->
                 <property name="targetMethod" value="getAgeStaticValue"></property>
             </bean>
         </property>
     </bean>
 
 
     <!--  将静态方法返回值直接定义成Bean -->
     <bean id="sysProps"
         class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
         <!-- targetClass确定目标类,确定调用哪个类 -->
         <property name="targetClass" value="java.lang.System" />
         <!-- targetMethod确定目标方法,确定调用目标class的哪个方法 
             该方法必须是静态方法-->
         <property name="targetMethod" value="getProperties" />
     </bean>
     <!-- 将实例方法返回值直接定义成Bean -->
     <bean id="javaVersion"
         class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
         <!-- targetObject确定目标Bean,确定调用哪个Bean -->
         <property name="targetObject" ref="sysProps" />
         <!-- targetMethod确定目标方法,确定调用目标Bean的哪个方法 -->
         <property name="targetMethod" value="getProperty" />
         <!-- 确定调用目标方法的参数 -->
         <property name="arguments">
             <!-- list元素列出调用方法多个参数值 -->
             <list>
                 <value>java.version</value>
             </list>
         </property>
     </bean>
 </beans>
2
0
分享到:
评论
1 楼 happy.future 2014-03-11  

相关推荐

    Eclipse 搭建Spring 开发环境

    Eclipse 搭建 Spring 开发环境 本文主要介绍了如何使用 Eclipse 搭建 Spring 开发环境,包括软件准备、软件安装和 Spring 示例三个部分。 一、软件准备 要搭建 Spring 开发环境,需要准备三个软件:Eclipse、...

    spring开发文档集合

    Spring开发文档集合是一个宝贵的资源,包含了关于Spring框架的多种学习材料。这个压缩包中的文档旨在帮助开发者深入理解和熟练使用Spring框架,它是一个广泛应用于Java企业级应用的开源框架。Spring以其依赖注入...

    基于SpringCloud的在线学习测评系统源码.zip

    基于SpringCloud的在线学习测评系统源码 基于SpringCloud的在线学习测评系统源码 基于SpringCloud的在线学习测评系统源码 基于SpringCloud的在线学习测评系统源码 基于SpringCloud的在线学习测评系统源码 ...

    Spring开发指南v0.8

    总结来说,《Spring开发指南v0.8》涵盖了Spring框架的主要模块和核心概念,是开发者深入学习和掌握Spring不可或缺的参考资料。通过阅读这份指南,开发者可以更好地理解和应用Spring,提高开发效率,打造出稳定、可...

    Spring4开发手册(开发指南)

    Spring Framework 是一个开源的 Java/Java ...通过对这些核心知识点的详细阐述,Spring4开发手册(开发指南)为开发者提供了全面的学习资源,帮助他们快速地学习和掌握Spring 4.x版本的开发技术,并应用于实际项目中。

    Spring Framework 开发参考手册

    这份手册提供Spring的功能参考指南,包括简介,spring2.0和2.5的新特性,spring核心技术,中间层数据访问等内容

    spring开发全部套件.rar

    对于初学者,学习spring开发时,许多时候困难的并不是学习本身,而是环境的搭建。对此,我在这里为广大初学者提供了一套spring开发的工具。 这其中包括eclipse4.6.3安装包(在安装好jdk配好环境变量之后直接点击安装...

    spring开发指南(夏昕)

    《Spring开发指南(夏昕)》是一本专为开发者准备的深入浅出的Spring框架学习资料,由知名技术专家夏昕编写。这本书旨在帮助读者理解并掌握Spring框架的核心概念、特性和最佳实践,从而在实际项目开发中游刃有余。 ...

    spring底层的学习之路

    随着学习的深入,你还可以探索Spring Boot、Spring Cloud等扩展技术,它们进一步简化了Spring应用的开发和部署。 总的来说,"Spring学习之路"资料包将带你走过Spring框架的基本知识,从Spring的核心原理到实战...

    《Spring Boot企业级开发教程》配套资源.zip

    《Spring Boot企业级开发教程》配套资源.zip是一个包含多种学习材料的压缩文件,专为学习和研究Spring Boot的企业级开发而设计。这个资源包旨在帮助用户深入理解和掌握Spring Boot框架,以及与其相关的Java和后端...

    《Spring Boot企业级开发教程》配套资料

    《Spring Boot企业级开发教程》配套资料是一份全面学习Spring Boot技术栈的宝贵资源,它涵盖了从基础到进阶的企业级应用开发知识。这个压缩包包含的教学材料多样,旨在帮助学习者深入理解并掌握Spring Boot的核心...

    spring开发指南(pdf中文版)

    在阅读《Spring开发指南》的过程中,你将学习如何配置和使用这些核心组件,同时还会了解到如何进行单元测试、性能优化以及如何与其他流行的技术栈如RESTful API、WebSocket等进行整合。通过深入学习,你将能够利用...

    Java Spring开发电商完整平台

    《Java Spring开发电商完整平台详解》 在当今的互联网时代,电商系统已成为企业不可或缺的一部分,而Java Spring框架凭借其强大的功能和灵活性,成为了构建高效、稳定的电商应用的首选技术栈。本篇将深入探讨如何...

    开发工具 mybatis-spring-1.3.1

    开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-1.3.1开发工具 mybatis-spring-...

    spring中文开发手册

    spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册spring中文开发手册

    《Vue Spring Boot前后端分离开发实战》源码Vue+Spring Boot前后端分离开发实战教学课件(PPT)

    这本《Vue Spring Boot前后端分离开发实战》的源码提供了深入学习和实践这一技术栈的机会。以下是对其中涉及知识点的详细说明: 1. **Vue.js**:Vue.js是一个轻量级的前端JavaScript框架,以其易学易用、组件化和...

    SpringBlade 开发手册-知识分享.zip

    SpringBlade 开发手册基础版,SpringBlade框架中的一些基本的操作,包含环境搭建、工程开发及工程的部署

    基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring Boot开发).zip

    基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring Boot开发).zip基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring Boot开发).zip基于Spring Boot2.X的后台权限管理系统源码(适合学习Spring ...

Global site tag (gtag.js) - Google Analytics