public class MessageWriter { public void writerMessage() { System.out.println("i'm working"); } } public class MessageDecorator implements MethodInterceptor{ @Override public Object invoke(MethodInvocation methodInvocation) throws Throwable { System.out.println("before..."); Object retVal = methodInvocation.proceed(); System.out.println("after..."); return retVal; } } public class MessageWeaver { public static void main(String[] args) { // joint point MessageWriter target = new MessageWriter(); // create the proxy ProxyFactory pf = new ProxyFactory(); // add advice pf.addAdvice(new MessageDecorator()); pf.setTarget(target); MessageWriter proxy = (MessageWriter) pf.getProxy(); target.writerMessage(); System.out.println("------------"); proxy.writerMessage(); } }
在测试就项目时使用上述测试代码如下jars⑩
spring2.5.6.jar
commons-logging-1.2.jar
cglib-full-2.0.2.jar
aspectjweaver-1.8.0.RELEASE.jar
测试类报如下错误
Exception in thread "main" java.lang.NoSuchMethodError: net.sf.cglib.proxy.Enhancer.setInterceptDuringConstruction(Z)V
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:182)
at org.springframework.aop.framework.Cglib2AopProxy.getProxy(Cglib2AopProxy.java:145)
at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:97)
at com.ycx.ch5.section3.MessageWeaver.main(MessageWeaver.java:17)
经过分析使用cglib-2.1_3.jar和asm-1.5.3.jar代替cglib-full-2.0.2.jar
问题解决
相关推荐
如果你在项目中使用了Spring 2.5.6,确保正确地引入所有必要的依赖,可以避免类加载错误和缺失功能的问题。 总之,Spring 2.5.6虽然已经相对较老,但它提供的IoC和AOP特性依然强大,且在很多现有的系统中仍发挥着...
Struts2.2、Hibernate3.3和Spring2.5.6是三个经典的Java企业级开发框架,它们的整合能够实现MVC模式的高效应用,提供了数据持久化、业务逻辑控制以及模型视图分离等功能。在这个简单的CRUD案例中,我们将看到如何在...
Spring 2.5.6 是该框架的一个较旧但仍然广泛使用的版本,它包含了丰富的功能和改进,比如依赖注入、AOP(面向切面编程)、数据访问、Web 应用支持等。 整合 SSH2 和 Spring 2.5.6,意味着在Spring应用中利用SSH的...
Spring 2.5.6 和 Struts 2.0 是两个经典的 Java Web 开发框架,它们各自在不同的层面上提供服务。Spring 主要关注于依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP),而 ...
在"struts2+spring2.5.6+hibernate3.0+ext"的整合开发中,通常会使用Spring来管理Struts2的Action类,实现业务逻辑的解耦。同时,Spring可以作为Hibernate的事务管理器,处理数据库操作。Ext则用于创建前端用户界面...
在深入探讨Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解的实现细节之前,我们先回顾一下这三个框架的基本概念及其在JavaEE企业级开发中的作用。 ### Struts2框架 Struts2是一个开源的Web应用框架,它遵循MVC...
### Struts2.1.6+Spring2.5.6+Hibernate3.3.1框架整合常见错误 在使用Struts2.1.6、Spring2.5.6与Hibernate3.3.1进行框架整合时,开发者经常会遇到一些常见的问题。这些问题可能会导致程序无法正常运行或出现异常...
Hessian 4.0.7是这个协议的一个版本,它与Spring 2.5.6框架结合使用时,可能会遇到一些特定的问题。Spring作为一个流行的Java企业级应用框架,提供了强大的依赖注入、AOP(面向切面编程)等功能,而Hessian则为远程...
标题中的“Spring 2.5.6介绍(九)——spring中没介绍的东西”暗示了这篇博客可能探讨的是Spring框架2.5.6版本中一些不常见或未被广泛讨论的功能。Spring是一个广泛使用的Java企业级应用开发框架,它以其依赖注入(DI...
《Tapestry5.1+Spring2.5.6+Hibernate3.2.5构建的简单CURD程序解析》 在Web开发领域,利用成熟的技术框架进行应用搭建是常见的实践方式。本文将深入探讨如何使用Tapestry5.1、Spring2.5.6和Hibernate3.2.5这三个...
Spring2.5.6-Final(修正版).chm 修正了打开有弹出错误提示框的错误,提供给仍在使用这个版本的兄弟们。 方便实用,支持索引,提高工作效率与大伙分享
Struts2.1.8、Spring2.5.6与Hibernate3.3.2是Java Web开发中的三个重要框架,它们分别负责不同的职责,共同构建了一个功能强大的企业级应用架构。Struts2作为MVC(Model-View-Controller)框架,负责处理用户请求并...
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解是一个关于Java EE企业级开发的经典教程,重点介绍了如何整合SSH(Struts2、Spring、Hibernate)三大框架,并利用注解进行开发。在这个教程中,作者“大象”...
在这个例子中,使用的版本分别是Struts2.1.6、Hibernate3.3.2和Spring2.5.6。 首先,让我们详细了解一下这三个框架的核心功能: 1. **Struts2**:这是一个基于MVC(Model-View-Controller)设计模式的Web应用框架...
本资源是Spring 2.5.6版本的API文档,已编译为CHM(Compiled Help Manual)格式,旨在提供一个方便、快捷的参考指南,同时解决了在阅读过程中可能出现的脚本错误问题。 Spring 2.5.6 API文档主要涵盖了以下几个核心...
在Spring2.5.6中,`spring-context`、`spring-beans`、`spring-aop`等核心模块是基础,`struts2-spring-plugin`则是Struts2与Spring整合的关键,确保Action类能在Spring容器中被管理。 **Hibernate**作为持久层框架...
1. **泛型支持**:Spring 3.0引入了对Java泛型的全面支持,这使得在配置bean时可以更加精确地指定类型,从而减少了编译期和运行期的错误。 2. **注解驱动的配置**:Spring 3.0大力推广了基于注解的配置,例如`@...
spring api 文档,版本 2.5.6 类型:chm 修正了在windows下打开 ,弹出脚本错误对话框的bug。
Spring JDBC将JDBC的异常转换为Spring的DataAccessException层次结构,使得异常处理更加统一,同时提供了更丰富的错误信息。 八、性能优化 Spring JDBC支持批处理,通过PreparedStatement的addBatch()方法,可以一...