论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
快速上手Spring--10.任意方法的替换
 作者:佚名     2007-3-14 17:35:00        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

  这篇文章来谈谈《Spring Framework 开发参考手册》的3.3.3.2小节中的“任意方法的替换”。
 
  仔细看看文档
 
 
· 先建立一个包:javamxj.spring.basic.MethodReplacer ,然后把以下5个文件放在这个包下。
 
Hello.java
package javamxj.spring.basic.MethodReplacer;

public interface Hello {
    public void sayHello(String s);
}
 
HelloImpl.java
package javamxj.spring.basic.MethodReplacer;

public class HelloImpl implements Hello {
    public void sayHello(String name) {
        System.out.println("Hello: " + name);
    }
}
 
HelloReplacer.java
package javamxj.spring.basic.MethodReplacer;

import java.lang.reflect.Method;

import org.springframework.beans.factory.support.MethodReplacer;

public class HelloReplacer implements MethodReplacer {
    public Object reimplement(Object o, Method m, Object[] args) throws Throwable {

        System.out.println("你好: " + args[0]);
        return null;
    }
}
 
beans.xml
xml version="1.0" encoding="GBK"?>
DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
    <bean id="helloReplacer" class="javamxj.spring.basic.MethodReplacer.HelloReplacer"/>
   
    <bean id="helloA" class="javamxj.spring.basic.MethodReplacer.HelloImpl"/>
   
    <bean id="helloB" class="javamxj.spring.basic.MethodReplacer.HelloImpl">
        <replaced-method name="sayHello" replacer="helloReplacer"/>
    bean>
   
beans>
 
Main.java
package javamxj.spring.basic.MethodReplacer;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

public class Main {
    public static void main(String[] args) {
        Resource res = new ClassPathResource(
                "javamxj/spring/basic/MethodReplacer/beans.xml");
        BeanFactory ft = new XmlBeanFactory(res);

        // 没有使用replaced-method
        Hello h = (Hello) ft.getBean("helloA");
        h.sayHello("分享Java快乐");
       
        // 使用replaced-method
        h=(Hello) ft.getBean("helloB");
        h.sayHello("分享Java快乐");

    }
}
 
 
简单说明一下:
 
· Hello是一个接口类,实现面向接口编程。
 
· HelloImpl类实现了Hello接口,简单的输出一个语句。
 
· HelloReplacer类要实现MethodReplacer接口,reimplement中提供替换后的方法。
 
· beans.xml中定义了三个bean,helloReplacer指向HelloReplacer类;helloA和helloB都指向HelloImpl类,其中helloB中定义了replaced-method。
 
· 在Main类中,对比输出使用replaced-method前后的语句。
 
· 这次需要将 spring-framework主目录\lib\cglib 目录中的cglib-nodep-2.1_2.jar加入到项目的 Libraries中,使用其中的动态代理。
 
 
运行结果:
 
Hello: 分享Java快乐
你好: 分享Java快乐


责任编辑:lss
  相关新闻
Exchange服务器快速恢复
计算机等级考试二级快速复习法
快速上手Spring--4.安装和使用IDE
快速上手Spring--5.Bean的标志符
快速上手Spring--9.Lookup方法注入
快速上手Spring--8.集合对象注入
Oracle中如何快速的卸载和加载数据
计算机考试二级快速复习法,基础教程网
Serv-U:快速构建功能强大FTP服务器
快速上手Spring--3.加载Bean配置文件
计算机考试二级快速复习法,基础教程网
计算机等级考试二级快速复习法
Oracle中如何快速的卸载和加载数据
教你用Oracle解析函数快速检查序列间隙
快速上手Spring--5.Bean的标志符
快速上手Spring--4.安装和使用IDE
快速上手Spring--6.Singleton的使用
快速上手Spring--9.Lookup方法注入
快速上手Spring--8.集合对象注入
快速上手Spring--7. ref的用法
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号