Spring的replace-method标签

摘要:
");returnnull;}}  

Spring的解析源码

    public voidparseReplacedMethodSubElements(Element beanEle, MethodOverrides overrides) {
        NodeList nl =beanEle.getChildNodes();
        for (int i = 0; i < nl.getLength(); i++) {
            Node node =nl.item(i);
            //仅当在Spring默认bean的子元素下且为
if (isCandidateElement(node) &&nodeNameEquals(node, REPLACED_METHOD_ELEMENT)) { Element replacedMethodEle =(Element) node; //提取要替换的旧的方法
String name
=replacedMethodEle.getAttribute(NAME_ATTRIBUTE); //提取对应的新的替换方法
String callback
=replacedMethodEle.getAttribute(REPLACER_ATTRIBUTE); ReplaceOverride replaceOverride = newReplaceOverride(name, callback); //Look for arg-type match elements. List<Element> argTypeEles =DomUtils.getChildElementsByTagName(replacedMethodEle, ARG_TYPE_ELEMENT); //记录参数
for(Element argTypeEle : argTypeEles) {
String match
=argTypeEle.getAttribute(ARG_TYPE_MATCH_ATTRIBUTE); match = (StringUtils.hasText(match) ?match : DomUtils.getTextValue(argTypeEle)); if(StringUtils.hasText(match)) { replaceOverride.addTypeIdentifier(match); } } replaceOverride.setSource(extractSource(replacedMethodEle)); overrides.addOverride(replaceOverride); } } }

replaced-method的使用

public classLookupMethodBean {
    public voidtest(){
        System.out.println("原始方法!");
    }
}
public class MethodReplace implementsMethodReplacer {
    public Object reimplement(Object obj, Method method, Object[] args) throwsThrowable {
        System.out.println("方法已经被替换!");
        return null;
    }
}
<bean name="replacer" class="MethodReplace"> </bean> 
<bean name="testBean" class="LookupMethodBean">
  <replaced-method name="test" replacer="replacer"> </replaced-method > 
</bean> 

免责声明:文章转载自《Spring的replace-method标签》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇selenium关于断言的使用C#解析json的两种方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

天气预报APP(2)

之前实现了能够罗列可以罗列出全国所有的省、市、县,然后就是查询全国任意城市的天气信息。查询天气信息使用的是和风天气的api,这个api获得的天气信息是JSON格式的。 使用GSON库解析JSON数据的第一步要先定义用于映照的类。 我对官方实例做了一下删减,然后可以看到这次我想要展示在这次这个项目中的信息: { "HeWeather5": [...

andoird软件开发之一个记录账号密码的APP--bmob后台

1.app功能:通过注册登录账户,拥有一个账户本,能够将平时自己容易的忘记的账户记录下来,并可以保持到云端,不需要担心数据丢失,只要登录账户,便可获取到自己的账户本。 2.实现的效果图,如下: 以下界面分别为注册界面、登录界面、提交账户内容界面、账户列表界面、长按删除账户信息、具体账户内容信息 3.实现的工程目录如下: 4.实现的具体过程: a.布局...

安卓(TableLayout)

1、特点 公共类TableLayout扩展LinearLayout容器不显示其行、列或单元格的边框线。每一行有零个或多个单元格;每个单元格可以包含一个视图对象该表的列数与包含最多单元格的行的列数相同。一个表可以保留空单元格。单元格可以跨列,就像在HTML中一样。 列的宽度由该列中单元格最宽的行定义。但是,TableLayout可以通过调用setColumn...

Alertmanager配置概述

Alertmanager配置概述 Alertmanager主要负责对Prometheus产生的告警进行统一处理,因此在Alertmanager配置中一般会包含以下几个主要部分: 全局配置(global):用于定义一些全局的公共参数,如全局的SMTP配置,Slack配置等内容; 模板(templates):用于定义告警通知时的模板,如HTML模板,邮件模板...

ets学习

http://diaocow.iteye.com/blog/1768647 http://www.cnblogs.com/me-sa/archive/2011/08/11/erlang0007.html ets是什么? ets是Erlang Term Storage的缩写,它是一个基于内存的KV Table,支持大数据量存储以及高效查询. ets有4种类型...

《Linux总线、设备与驱动》USB设备发现机制

说明:本分析基于mstar801平台Linux2.6.35.11内核,其他内核版本仅供参考。 一、程序在内核中的位置 1.usb host做为pci总线下的一个设备存在(嵌入式系统中有可能也会直接挂在CPU上);这部分驱动由厂家实现,本分析以mstar为例。 2.USB总线驱动 kernel/drivers/usb/core/driver.c [cp...