分享Java快乐

我有一份快乐,分给你一些;我还是有一份快乐,你也有一份快乐。

mxj ID:javamxj
510576次访问,排名74好友0人,关注者2
javamxj的文章
原创 82 篇
翻译 0 篇
转载 0 篇
评论 717 篇
javamxj的公告

    版权声明:在此发表的有关文章均属本人javamxj原创,转摘或引用请注明出处。



联系方式:
Email:
javamxj@gmail.com

友情Blog

最近评论
xkpkhu:wow power leveling
xkpkhu:wow power leveling
xkpkhu:wow power leveling
zhouxz1026:写得真是太好了,水平真的很高,佩服啊!赞一个!学习了!
蜂胶
蜂蜜
hitprince:谢谢啦,知道了
文章分类
收藏
    相册
    有空逛逛
    java开源大全(RSS)
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创  快速上手Spring--10. 任意方法的替换收藏

    新一篇:  快速上手Spring--11. 自动绑定和依赖检查

      这篇文章来谈谈《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快乐
     
     
     
    这篇文章源代码下载(不包含库文件):http://free.ys168.com/?javamxj  Spring目录下面的SpringBasic.zip。

    发表于 @ 2005年08月18日 16:40:00|评论(loading...)|编辑

    旧一篇:  快速上手Spring--9. Lookup方法注入

    评论

    #小蚂蚁 发表于2005-08-20 17:23:00  IP: 211.100.4.*
    又美餐了一顿,谢谢大哥!
    #小兵 发表于2005-09-05 11:08:00  IP: 211.100.21.*
    持续关注中!
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © javamxj