`
liuzhaomin
  • 浏览: 204837 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

方法替换MethodReplacer

阅读更多

 

 

package com.astute.sparrow.spring.ioc.method_injection;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

@Component("a")
public class A implements BeanFactoryAware {
	@Autowired
	@Qualifier("b")
	private B b;
	
	private BeanFactory factory;
	
	private ObjectFactory objectFactory;
	
	public void printB() {
		System.out.println(getB());
	}

	public void setObjectFactory(ObjectFactory objectFactory) {
		this.objectFactory = objectFactory;
	}

	public B getB() {
		//return (B) factory.getBean("b");
		//return (B) objectFactory.getObject();
		return b;
	}

	public void setB(B b) {
		this.b = b;
	}

	@Override
	public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
		this.factory = beanFactory;
	}

}
package com.astute.sparrow.spring.ioc.method_injection;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component("b")
@Scope("prototype")
public class B {

}
 
<bean id="b" class="com.astute.sparrow.spring.ioc.method_injection.B" scope="prototype"/>
<bean id="a" class="com.astute.sparrow.spring.ioc.method_injection.A">
	<property name="b" ref="b"/>
	<replaced-method name="printB" replacer="aMethodReplacer"/>
</bean>
<bean id="aMethodReplacer" class="com.astute.sparrow.spring.ioc.method_injection.AMethodReplacer"/>
 
BeanFactory factory = new XmlBeanFactory(new ClassPathResource(
				"com/astute/sparrow/spring/ioc/method_injection/spring-methodreplacer.xml"));
A a = (A) factory.getBean("a");
a.printB();
a.printB();
a.printB();

 

输出:

写道
wo do nothing this time...
wo do nothing this time...
wo do nothing this time...
 

 

 

 

 

分享到:
评论

相关推荐

    allegro在pcb中替换其他封装方法

    ### allegro在PCB中替换其他封装方法 在电子设计自动化(EDA)领域,Cadence Allegro是一款功能强大的PCB设计软件,广泛应用于各种复杂的电路板设计中。当遇到需要在PCB中替换元件封装的情况时,特别是当没有原理图...

    第六章 Spring4 方法替换

    第六章 Spring4 方法替换 在Spring框架中,方法替换(Method Replacement)是一种允许我们动态地改变或增强对象行为的技术。这种技术在某些情况下非常有用,比如单元测试、模拟(mocking)或者在运行时调整应用的...

    Runtime 方法的替换(不同类).zip

    在编程领域,特别是Objective-C(OC)中,"Runtime 方法的替换(不同类)"是一个重要的概念,涉及到程序运行时的动态特性。Objective-C的运行时系统(Runtime System)赋予了开发者在程序运行过程中修改和替换类的方法...

    Word常用查找与替换实例及方法(64例).pdf

    本文将详细探讨在Word中使用查找与替换功能的实例及方法,并提供64个实用案例进行解析。案例中不仅涵盖了普通文本的查找与替换,还包括特殊格式和特殊字符的处理,如ASCII字符、ANSI字符、Unicode字符等。 首先,...

    java简单热替换

    Java热替换(Hot Swap)是一种在程序运行时更新或替换类的方法实现,而无需重启应用的技术。这个特性在开发环境中非常有用,因为它可以显著提高开发效率,减少因反复重启应用而导致的时间消耗。Java的热替换通常与...

    易语言文本替换源码,易语言全文替换模块

    总的来说,易语言全文替换模块源码是易语言编程中一个实用的工具,它提供了一种高效处理文本替换的方法,对于需要处理大量文本的易语言应用来说,是不可或缺的一部分。通过深入理解和使用这个模块,开发者不仅可以...

    Xposed替换程序中的方法,代码演示01

    源代码示例: 两个Project,其中一个作为...Xposed注入的程序,运行后,将宿主程序中的一个方法替换掉。宿主程序依然正常运行,但是输出信息却被篡改。 XPosed注入程序解除运行状态后,宿主程序运行正常,信息完好。

    基于AutoCAD-VBA的多重查找和替换方法探讨.pdf

    然而,在AutoCAD中使用VBA可以实现更复杂的自动化任务,包括本文所探讨的多重查找和替换方法。该方法能够在AutoCAD环境中,通过编程实现对图纸中多个对象的文字内容进行批量查找和替换操作,从而大大提高工作效率和...

    C# 文本内容批量替换

    `String`类提供了丰富的字符串处理方法,如`Replace`方法,可以用来替换字符串中的特定子串。 以下是一个简单的批量替换文本内容的步骤: 1. **打开文件**:使用`StreamReader`打开文件,通常使用`File.OpenText`...

    易语言数组文本替换

    在易语言中,“高级_子文本替换”可能指的是具有更复杂功能的文本替换方法,比如支持正则表达式、区分大小写、全局替换等特性。这些高级功能可以满足更多复杂的文本处理需求,提高代码的灵活性。 四、源码分析 ...

    解决jlink盗版替换的文件和方法

    在提供的"替换方法.txt"和"替换文件"中,可能包含了具体的文件替换步骤或修复指南。这些文件应该详细说明了如何替换可能被篡改的JLink相关文件,以恢复其正常功能。在执行这些操作时,务必确保备份原始文件,以防...

    ultraedit替换方法.doc

    ultraedit替换方法 正则表达式 替换

    winform替换Word中的指定字符方法

    ### WinForm 中替换 Word 文档指定字符的方法 在日常工作中,我们经常需要处理大量的文档,尤其是在需要批量修改或替换文档中的某些特定字符时,能够利用编程语言自动化这一过程将会极大地提高工作效率。本篇文章将...

    基于网格优化的图像纹理替换方法

    ### 基于网格优化的图像纹理替换方法 #### 概述 本文介绍了一种新型的图像纹理替换技术,该技术能够在不完全了解原始图像精确几何结构和光照条件的情况下,有效地将新纹理替换到目标区域,并能逼真地保留原有纹理...

    JavaScript替换和替换所有

    在JavaScript编程语言中,字符串操作是一项非常基础且重要的功能,其中“替换”和“替换所有”是经常被使用的两个概念,它们分别对应于`replace()`方法的不同用法。本文将详细解析这两个知识点,帮助读者更好地理解...

    3dMax一键批量物体替换插件

    1. **选择与替换**:用户需了解如何在3DMax中有效地选择物体,包括使用鼠标、键盘快捷键、选择过滤器等方法。同时,理解如何设置替换对象,确保新物体与旧物体的尺寸和形状匹配,以便于无缝替换。 2. **插件安装与...

    C#替换敏感字符(包含方法和字符txt)

    在C#中,我们可以使用StreamReader类来读取txt文件的内容,然后通过字符串处理方法(如Split、Contains、Replace等)来查找和替换敏感词。例如,我们可以创建一个HashSet来存储敏感词,提高查找效率,然后遍历输入...

    win11记事本完美替换.rar

    描述提到,由于Windows 11的一些变化,以往的替换方法可能不再适用,因此提供了新的有效替换方案。 在Windows 11中,记事本是一个基础的文本编辑工具,虽然简单易用,但一些用户可能更倾向于使用Notepad2或类似的...

    CAD多文件文字批量替换插件CASS批量文本替换工具批量文字查找替换

    QTools多文件文字批量替换是一款非常好用的CAD文字查找替换工具,支持单行文字、多行文字、属性块文字,支持AutoCAD2004~2024所有版本。 插件支持模糊匹配、精准匹配、开图替换、不开图替换、可自定义多重替换条件...

    JSP开发之Spring方法注入之替换方法实现

    JSP开发之Spring方法注入之替换方法实现 ...替换方法实现机制的核心是MethodReplacer接口,其中定义了一个reimplement ()方法,我们的替换方法实现的主要逻辑就是在该方法中实现的, 具体定义如下: public inte

Global site tag (gtag.js) - Google Analytics