Spring(使用XML方式的AOP)

方法1:<?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:context="http://www.springframework.org/schema/context"
         xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd " default-autowire="byName" >

    <context:annotation-config/>
    <context:component-scan base-package="com.daoan"/>

    <bean id="logIntercetor" class="com.daoan.aop.LogIntercetor"></bean>

    <aop:config>
        <!-- pointcut,在哪些方法上面加切面逻辑 -->
        <aop:pointcut
        expression="execution(public * com.daoan.service..*.add(..))"
        id="servicePointcut"/>
        <!-- 加入声明的切面对象 所参考的切面对象是logInterceptor -->
        <aop:aspect id="logAspect" ref="logInterceptor" >
        <!-- 在add方法执行之前,会先执行LogIntercetor下面的before()方法 -->
            <aop:before method="before" pointcut-ref="servicePointcut" />
        </aop:aspect>

    </aop:config>

</beans>
package com.daoan.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

//@Aspect
//@Component
public class LogIntercetor {

    //(在方法执行之前先执行before()方法,如果需要把该逻辑织入到某个类的某个方法上,那个对象必须是spring管理起来的)
//    @Before("execution(public * com.daoan.service..*.add(..))")
    public void before() {
        System.out.println("method before");
    }

    //方法正常运行完成之后
//    @Around("execution(public * com.daoan.service..*.add(..))")
    public void aroundMethod(ProceedingJoinPoint pjp) throws Throwable {
        System.out.println("method around start");
        pjp.proceed();
        System.out.println("method around end");
    }
}

方法2:

    <context:annotation-config/>
    <context:component-scan base-package="com.daoan"/>

    <bean id="logIntercetor" class="com.daoan.aop.LogIntercetor"></bean>

    <aop:config>
        <!-- 加入声明的切面对象 所参考的切面对象是logInterceptor -->
        <aop:aspect id="logAspect" ref="logInterceptor" >
        <!-- 在add方法执行之前,会先执行LogIntercetor下面的before()方法 -->
            <aop:before method="before" pointcut="execution(public * com.daoan.service..*.add(..))" />
        </aop:aspect>

    </aop:config>

原文地址:https://www.cnblogs.com/xdalsh/p/8440808.html

时间: 2024-10-11 06:56:51

Spring(使用XML方式的AOP)的相关文章

使用Spring的注解方式实现AOP的细节

前面我们已经入门使用Spring的注解方式实现AOP了,现在我们再来学习使用Spring的注解方式实现AOP的一些细节.本文是建立在使用Spring的注解方式实现AOP入门的案例的基础之上的. 本文是来讲解使用Spring的注解方式实现AOP的一些细节,其实说白了就是学习如何使用各种通知而已,例如前置通知.后置通知.异常通知.最终通知.环绕通知等,之前我们已经学习了前置通知,现在就来学习剩余的通知. 我们先来看后置通知,此时须将MyInterceptor类的代码修改为: /** * 切面 * @

使用Spring的注解方式实现AOP入门

首先在Eclipse中新建一个普通的Java Project,名称为springAOP.为了使用Spring的注解方式进行面向切面编程,需要在springAOP项目中加入与AOP相关的jar包,spring aop需要额外的jar包有: com.springsource.org.aopalliance-1.0.0.jar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar spring-aop-4.2.5.RELEASE.jar sprin

基于AspectJ的XML方式进行AOP开发

-------------------siwuxie095 基于 AspectJ 的 XML 方式进行 AOP 开发 1.首先导入 jar 包(共 10 个包) (1)导入核心 jar 包和日志相关的 jar 包 (2)导入 AOP 和 AspectJ 的 jar 包 其中: aopalliance 下载链接: http://mvnrepository.com/artifact/aopalliance/aopalliance aspectjweaver 下载链接: http://mvnrepos

Spring的注解方式实现AOP

Spring对AOP的实现提供了很好的支持.下面我们就使用Spring的注解来完成AOP做一个例子. 首先,为了使用Spring的AOP注解功能,必须导入如下几个包.aspectjrt.jar,aspectjweaver.jar,cglib-nodep.jar. 然后我们写一个接口 [java] view plain copy print? package com.bird.service; public interface PersonServer { public void save(Str

Spring通过XML方式实现定时任务

1 package com.wisezone.service; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Date; 5 6 import org.springframework.scheduling.annotation.Scheduled; 7 import org.springframework.stereotype.Service; 8 9 @Service 10 public class JobService {

Spring基于XML方式的使用

一.IoC配置 IoC的配置是通过Spring的xml文件的bean标签进行的. 1.bean标签介绍 bean标签一般是在xml文件进行配置的,xml文件一般样式如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.or

spring框架之AspectJ的XML方式完成AOP的开发

1. 步骤一:创建JavaWEB项目,引入具体的开发的jar包 * 先引入Spring框架开发的基本开发包 * 再引入Spring框架的AOP的开发包 * spring的传统AOP的开发的包 * spring-aop-4.2.4.RELEASE.jar * com.springsource.org.aopalliance-1.0.0.jar * aspectJ的开发包 * com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar * spring

使用spring的注解方式实现aop

首先是导入一些的jar包 切面的代码 @Component @Aspect public class Advice { @Before("init()") public void log(){ System.out.println("before do..."); } @Pointcut("execution(* service.*.*(..))")//方法切入点,execution为执行的意思,*代表任意返回值,然后是包名,.*意思是包下面的所

Spring(使用Annotation方式的AOP)

一.配置XML文件 <?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:context="http://www.springframewo