spring 2.0 aop 配置----解决 CGLIB2 is not availa(2008-11-06 10:22:03)转载标签:杂谈 分类:Java
Spring 2.0 aop 配置----解决 Cannot proxy target class because CGLIB2 is not available.
在lib中添加cglib-nodep-2.1_3.jar 即可!
Spring 2.0中 AOP的编程:
nested exception:该嵌套异常往往是导入包是嵌套造成的,将包remove后再重新导入
方式一:
publicclass User {
publicvoid method() {
System.out.println("in method1");
}
}
publicclass LogBean {
public Object aroundLogCalls(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("before invoke method:"
+ joinPoint.getSignature().getName());
Object object = joinPoint.proceed();
System.out.println("after invoke method:"
+ joinPoint.getSignature().getName());
return object;
}
}
采用在xml配置aop:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- 注意上面的四个地址用空格分开 -->
<aop:config>
<!-- expression 表示要执行的匹配表达式,这里匹配所有的public方法,但是去除logger类的所有方法,防止无限调用-->
<aop:pointcut id="loggableCalls"
expression="execution(public * *(..)) "/>
<aop:aspect id="logAspect" ref="logBean">
<aop:around pointcut-ref="loggableCalls"
method="aroundLogCalls" />
</aop:aspect>
</aop:config>
<bean id="logBean" class="LogBean" />
<bean id="user" class="User" />
方式二:
采用标注:
@Aspect
publicclass LogAspect {
@Pointcut("execution(public * *(..))")
publicvoid publicMethods() {
}
@Around("publicMethods()")
public Object aroundLogCalls(ProceedingJoinPoint joinPoint)
throws Throwable {
System.out.println("before invoke method:"
+ joinPoint.getSignature().getName());
Object object = joinPoint.proceed();
System.out.println("after invoke method:"
+ joinPoint.getSignature().getName());
return object;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- 注意上面的四个地址用空格分开 -->
<aop:aspectj-autoproxy />
<!-- 或者使用以下定义
<bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" />
-->
<bean id="logAspect" class="LogAspect" />
<bean id="user" class="User" />
</beans>
分享到:
相关推荐
网上找了很多例子多数都不能运行。包括after,before,round,throw切入,可对类直接拦截,不需要定义接口文件,自己研究了2天整理出来的。 Spring AOP 的完整例子,可直接运行。带jar包。
spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-2.5.2.jar spring-aop-2.5.4.jar spring-aop-2.5.5.jar spring-aop-2.5.6.jar spring-aop-3.0.0.RELEASE.jar spring-aop-3.0.2.RELEASE.jar spring-aop-sources...
Spring 2.0 是一个非常重要的Java框架,它在企业级应用开发中占据了核心地位,尤其是在基于Java的轻量级应用程序上下文(IoC)和面向切面编程(AOP)方面。本手册和使用指南提供了全面的Spring 2.0相关知识,包括其...
Spring 2.0的AOP增强了切入点表达式,使得定位切点更加灵活,并引入了基于注解的切面定义,让切面编写更加直观。 四、数据访问集成 Spring 2.0在数据访问层提供了对各种持久化技术的集成,包括JDBC、ORM(Hibernate...
1. **AOP(面向切面编程)增强**:Spring 2.0加强了对AOP的支持,允许开发者定义更复杂的切面,如注解驱动的切面,提供了更多的通知类型,如around、before、after等,使得代码更加模块化和可维护。 2. **注解驱动...
Spring 2.0提供了两种AOP代理:JDK动态代理和CGLIB代理。JDK代理用于接口实现类,而CGLIB代理则用于没有接口或不希望修改接口的类,以实现AOP增强功能。 11. **Spring Batch** Spring Batch是Spring 2.0中的...
Spring 2.0加强了AOP支持,允许开发者定义和执行横切关注点,如日志记录、事务管理等。@Aspect注解用于定义切面,@Before、@After、@Around等用于指定通知类型。此外,Spring还支持自定义注解作为切入点表达式,提高...
2. **AOP(面向切面编程)**:Spring 2.0提供了更强大的面向切面编程支持,使得开发者可以将关注点分离,如日志、事务管理等,从而降低代码复杂性。AOP代理包括JDK动态代理和CGLIB代理,允许开发者定义切入点和通知...
Spring 2.0是Java开发中的一个里程碑,它在企业级应用开发中扮演着至关重要的角色,特别是对于依赖注入(IoC)和面向切面编程(AOP)的支持。本学习提纲旨在为初学者提供一份详尽的Spring 2.0学习指南,帮助他们系统...
1. **AOP(面向切面编程)增强**:Spring 2.0 提供了更强大的面向切面编程支持,允许开发者定义更复杂的切面,包括基于注解的切点表达式和更多的通知类型。这使得代码更加整洁,业务逻辑与系统服务(如事务管理)...
2. **AOP(面向切面编程)**:Spring 2.0提供了更强大的面向切面编程支持,允许开发者定义切面、通知(advisors)和切点(pointcuts),并将其应用于业务代码,实现如日志、事务管理等功能。切面可以是接口、类或...
其次,Spring 2.0强化了依赖注入(DI)和面向切面编程(AOP)的支持。DI是Spring的核心特性,通过源码,我们可以学习到如何定义bean的配置,如何使用`@Autowired`和`@Qualifier`注解实现自动装配,以及如何自定义...
Spring 2.0提供了更为强大的AOP支持,能够更方便地将这些关注点与业务逻辑分离。 - **声明式事务管理**:通过配置XML或注解(`@Transactional`)来管理事务边界,简化了复杂的事务代码。 - **自定义切面**:允许...
在Spring 2.0版本中,引入了许多新特性,如AOP(面向切面编程)的增强、更强大的数据访问支持、Web服务支持等,这些都在书中得到了详尽的讲解。 1. **依赖注入**:Spring的核心特性之一,它允许开发者通过配置来...
在Spring 2.0中,最重要的更新之一是AOP(面向切面编程)的增强。这一版本引入了基于注解的AOP支持,使得开发者可以更直观地定义切面,无需编写XML配置。例如,@Before、@After、@Around等注解可以直接应用于方法上...
《精通Spring 2.0源代码》是一本深入解析Spring框架核心原理的书籍,由罗时飞主编。这本书通过对Spring 2.0版本的源代码进行深入剖析,旨在帮助读者全面理解Spring的工作机制,提升在实际开发中的应用能力。源代码的...
2. **AOP(Aspect Oriented Programming, 面向切面编程)**:Spring 2.0引入了完整的AOP支持,允许开发者定义和执行横切关注点,如日志、事务管理等,从而将这些通用功能与业务逻辑分离。 3. **Bean的生命周期管理*...
Spring 2.0在AOP方面进行了增强,支持更多的通知类型,包括环绕通知,使切面的实现更为灵活。 Spring MVC是用于构建Web应用程序的模块,它提供了模型-视图-控制器架构,将业务逻辑、数据处理和用户界面分离。在...