`
lvyanglin
  • 浏览: 86103 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

spring2.0 AOP举例

    博客分类:
  • java
阅读更多
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>
分享到:
评论

相关推荐

    Spring 2.0 AOP 完整例子

    网上找了很多例子多数都不能运行。包括after,before,round,throw切入,可对类直接拦截,不需要定义接口文件,自己研究了2天整理出来的。 Spring AOP 的完整例子,可直接运行。带jar包。

    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...

    spring2.0中文手册及使用指南 chm

    Spring 2.0 是一个非常重要的Java框架,它在企业级应用开发中占据了核心地位,尤其是在基于Java的轻量级应用程序上下文(IoC)和面向切面编程(AOP)方面。本手册和使用指南提供了全面的Spring 2.0相关知识,包括其...

    SPRING2.0中文文档

    Spring 2.0的AOP增强了切入点表达式,使得定位切点更加灵活,并引入了基于注解的切面定义,让切面编写更加直观。 四、数据访问集成 Spring 2.0在数据访问层提供了对各种持久化技术的集成,包括JDBC、ORM(Hibernate...

    Spring2.0宝典源代码

    1. **AOP(面向切面编程)增强**:Spring 2.0加强了对AOP的支持,允许开发者定义更复杂的切面,如注解驱动的切面,提供了更多的通知类型,如around、before、after等,使得代码更加模块化和可维护。 2. **注解驱动...

    Spring2.0中文教程

    Spring 2.0提供了两种AOP代理:JDK动态代理和CGLIB代理。JDK代理用于接口实现类,而CGLIB代理则用于没有接口或不希望修改接口的类,以实现AOP增强功能。 11. **Spring Batch** Spring Batch是Spring 2.0中的...

    spring2.0 jar包

    Spring 2.0加强了AOP支持,允许开发者定义和执行横切关注点,如日志记录、事务管理等。@Aspect注解用于定义切面,@Before、@After、@Around等用于指定通知类型。此外,Spring还支持自定义注解作为切入点表达式,提高...

    spring2.0 中文教程

    2. **AOP(面向切面编程)**:Spring 2.0提供了更强大的面向切面编程支持,使得开发者可以将关注点分离,如日志、事务管理等,从而降低代码复杂性。AOP代理包括JDK动态代理和CGLIB代理,允许开发者定义切入点和通知...

    详尽的Spring2.0学习提纲

    Spring 2.0是Java开发中的一个里程碑,它在企业级应用开发中扮演着至关重要的角色,特别是对于依赖注入(IoC)和面向切面编程(AOP)的支持。本学习提纲旨在为初学者提供一份详尽的Spring 2.0学习指南,帮助他们系统...

    spring2.0中文参考手册.rar

    1. **AOP(面向切面编程)增强**:Spring 2.0 提供了更强大的面向切面编程支持,允许开发者定义更复杂的切面,包括基于注解的切点表达式和更多的通知类型。这使得代码更加整洁,业务逻辑与系统服务(如事务管理)...

    Spring 2.0 源代码

    2. **AOP(面向切面编程)**:Spring 2.0提供了更强大的面向切面编程支持,允许开发者定义切面、通知(advisors)和切点(pointcuts),并将其应用于业务代码,实现如日志、事务管理等功能。切面可以是接口、类或...

    spring2.0技术手册_源代码(全十章)

    其次,Spring 2.0强化了依赖注入(DI)和面向切面编程(AOP)的支持。DI是Spring的核心特性,通过源码,我们可以学习到如何定义bean的配置,如何使用`@Autowired`和`@Qualifier`注解实现自动装配,以及如何自定义...

    SPRING2.0开发详解

    Spring 2.0提供了更为强大的AOP支持,能够更方便地将这些关注点与业务逻辑分离。 - **声明式事务管理**:通过配置XML或注解(`@Transactional`)来管理事务边界,简化了复杂的事务代码。 - **自定义切面**:允许...

    Spring2.0技术手册_林信良PDF

    在Spring 2.0版本中,引入了许多新特性,如AOP(面向切面编程)的增强、更强大的数据访问支持、Web服务支持等,这些都在书中得到了详尽的讲解。 1. **依赖注入**:Spring的核心特性之一,它允许开发者通过配置来...

    spring2.0学习源码

    在Spring 2.0中,最重要的更新之一是AOP(面向切面编程)的增强。这一版本引入了基于注解的AOP支持,使得开发者可以更直观地定义切面,无需编写XML配置。例如,@Before、@After、@Around等注解可以直接应用于方法上...

    精通spring2.0源代码

    《精通Spring 2.0源代码》是一本深入解析Spring框架核心原理的书籍,由罗时飞主编。这本书通过对Spring 2.0版本的源代码进行深入剖析,旨在帮助读者全面理解Spring的工作机制,提升在实际开发中的应用能力。源代码的...

    SPRING2.0---SPRING2.0 說明1

    2. **AOP(Aspect Oriented Programming, 面向切面编程)**:Spring 2.0引入了完整的AOP支持,允许开发者定义和执行横切关注点,如日志、事务管理等,从而将这些通用功能与业务逻辑分离。 3. **Bean的生命周期管理*...

    spring2.0完整开发包

    Spring 2.0在AOP方面进行了增强,支持更多的通知类型,包括环绕通知,使切面的实现更为灵活。 Spring MVC是用于构建Web应用程序的模块,它提供了模型-视图-控制器架构,将业务逻辑、数据处理和用户界面分离。在...

Global site tag (gtag.js) - Google Analytics