怎么让给一个B/S结构的项目添加建一个补丁,使用补丁修改某一段指定的代码 拜托了

解决方案 »

  1.   

    使用MyEcliption能创建一个修补程序吗
      

  2.   

    用spring写拦截器,你原来的项目里面,哪些类调用了什么方法你总知道吧?然后根据不同的方法增加不同的处理呀例如原项目
       ClassA a=new ClassA();
       a.sayHelloWorld();这里用spring拦截ClassA类的sayHelloWorld方法
    在拦截器内部
    public Object invoke(Object proxy, Method method, Object[] args)
    throws Throwable {
    Object obj = null;
    System.out.println("sayHelloWorld begin...");
    try {
    obj = method.invoke(target, args);
    } catch (Exception e) {
    e.printStackTrace();
    }
    System.out.println("sayHelloWorld end...");
    return obj;
    }
      

  3.   

    public Object invoke(Object proxy, Method method, Object[] args)
    throws Throwable {
    Object obj = null;
    System.out.println("目标对象方法调用前");
    try {
    obj = method.invoke(target, args);
    } catch (Exception e) {
    e.printStackTrace();
    }
    System.out.println("目标对象方法调用后");
    return obj;
    }
      

  4.   

    我想建一个补丁,删除方法里的几行代码,怎么建那个补丁啊,用MyEclipse
      

  5.   

     public Object invoke(Object proxy, Method method, Object[] args)
                                    throws Throwable {
            Object obj = null;
            执行你想要执行的代码,就是删除掉几行的代码;
            return 你执行代码后的返回值; 
        }
      

  6.   

    那我如果要改dao类的方法怎么改
      

  7.   

    如果你要补丁的话,建议你重写源码,然后编译之后给客户,覆盖原来的class文件如果你不想这么做的话,我上面已经给出你例子了呀
    比如dao原来有方法saveOrUpdate里面是两句输出语句 输出 a; 输出 b;你用spring的拦截器拦截到dao调用saveOrUpdate方法的时候执行输出a然后直接返回saveOrUpdate的返回值就可以了呀
      

  8.   

    一  修改源代码,编译class文件作为补丁覆盖原来的class文件
    二  spring注入(不推荐)因为你不是要增加功能而是在原有的代码删除一些方法内的语句,而且如果之前你没有用spring框架的话你还是要提供给客户新的文件,无形中这个补丁是没有意义的,删除语句应该是缩小了整个程序的体积,但是你为了达到这个目的反而要增加程序体积,你要删除的那些语句就成了冗余代码了,不符合程序设计的思想
      

  9.   

    直接修改源代码,增加该有的逻辑,然后上传到服务器就行了B/S与C/S不同,服务器里面的内容改了,客户端根本就不用改什么东西,也就无所谓什么客户端安装补丁了
      

  10.   

    客户,并不是说客户端啦-。-,给客户的也就是个jar包,项目可能是楼主公司自己用,也可能是他们公司给其他公司做的