`
wuyaweiwude
  • 浏览: 121903 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类

Spring中基于@AspectJ的AOP配置

阅读更多
本文用于知识点的简单总结。

对于Spring中AOP的配置,第二种方式是基于@AspectJ风格的注解方式,相关配置项在代码中定义。以下主要通过代码说明基本配置流程。

(1)定义需要实现的业务接口:
package com.aop.service;

public interface MyService {
    
    public void sayHello(String word);
    
}

(2)编写实现接口的业务类:
package com.aop.service;

public class MyServiceImpl implements MyService {

    @Override
    public void sayHello(String word) {
	System.out.println("Say :" + word);
    }

}

(3)切点、切面、通知等相关配置:
package com.aop.aspect;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

//切面声明
@Aspect
public class MyAspectJ {

    //切点声明
    @Pointcut(value = "execution(* com.aop.service..*.*(..))&& args(param)", argNames = "param")
    public void MyPointCut(String param) {
    }
    //前置通知声明
    @Before(value = "MyPointCut(param)", argNames = "param")
    public void beforeAdvice(String param) {
	System.out.println("--before advice,param:" + param);
    }

}

(4)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:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="   
           http://www.springframework.org/schema/beans   
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
           http://www.springframework.org/schema/aop   
           http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
           
	<!-- 开启 @AspectJ 风格的切面声明 -->
	<aop:aspectj-autoproxy />

	<!-- 接口实现业务类 -->
	<bean id="MyService" class="com.aop.service.MyServiceImpl" />

	<!-- 切面定义类,包含切点、切面、通知等相关配置 -->
	<bean id="MyAspectJ" class="com.aop.aspect.MyAspectJ" />

</beans>  

(5)测试类:
package com.spring.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.aop.service.MyService;

public class TestAop {

    public static void main(String[] args) {
	
	ApplicationContext context = new FileSystemXmlApplicationContext("aspectJAop.xml");	
	MyService service = (MyService) context.getBean("MyService");
	
	service.sayHello("Spring aop");
    }
}

(6)输出结果:
--before advice,param:Spring aop
Say :Spring aop
0
2
分享到:
评论

相关推荐

    征服Spring AOP—— @AspectJ

    在压缩包文件"spring-aop-aspectj"中,可能包含了关于Spring AOP和@AspectJ的示例代码或文档,可以帮助你进一步理解和实践这些知识。通过学习和实践,你将能更好地掌握这一强大的工具,从而在你的IT职业生涯中征服...

    @AspectJ配置Spring AOP,demo

    `基于@AspectJ配置Spring AOP之一 - 飞扬部落编程仓库-专注编程,网站,专业技术.htm`和其关联的`_files`目录可能包含了一个详细的教程或演示如何配置和运行@AspectJ的Spring AOP应用程序。 通过以上内容,我们可以...

    Spring @AspectJ 实现AOP 入门例子

    @AspectJ是Spring支持的一种AOP实现,它使用注解来定义切面,简化了配置过程。 创建一个Spring AOP应用的第一步是设置项目结构。在给定的压缩包文件中,我们可能看到一个名为"src"的目录,通常这个目录包含项目的源...

    Spring AOP @AspectJ 入门实例

    基于代理的织入通常用于Spring的IoC容器中的bean,而基于字节码的织入则是在运行时通过ASM库动态修改类的字节码来实现,这正是@AspectJ所采用的方式。 @AspectJ是Spring AOP的一个扩展,它提供了一种更接近传统编程...

    Spring AOP 概念理解及@AspectJ支持

    Spring AOP的实现基于动态代理,对于接口实现类,它使用Java的`java.lang.reflect.Proxy`类来创建代理对象;对于没有接口的类,Spring使用CGLIB库生成子类。在运行时,Spring AOP会根据切面定义生成代理对象,然后...

    spring AOP 实例(@AspectJ)

    一个基于@AspectJ的spring2.0 AOP应用实例,很小很简单,没有任何额外信息,最适合AOP入门学习。使用log4j打印信息。把项目直接import进myeclipse就可以使用啦......

    Spring的AOP实例(XML+@AspectJ双版本解析+源码+类库)

    在Java世界中,Spring框架以其强大的功能和灵活性深受开发者喜爱,尤其在面向切面编程(AOP)方面,Spring提供了两种主要的实现方式:XML配置和@AspectJ注解。本篇文章将深入探讨这两个版本的AOP实现,并结合源码...

    Spring 使用AspectJ 实现 AOP

    2. **配置AspectJ**:在Spring的配置文件中启用AspectJ自动代理,可以通过`&lt;aop:aspectj-autoproxy&gt;`标签来实现。 3. **定义切面**:创建一个Java类作为切面,该类需要使用`@Aspect`注解。在切面类中,我们可以定义...

    spring对AOP的支持(使用AspectJ进行AOP演示)

    Spring 提供了两种主要的 AOP 实现方式:基于代理的和基于 AspectJ 的。基于代理的方式是 Spring 默认的实现,它通过 JdkDynamicProxy 或 CGLIB 创建代理对象来实现切面。而基于 AspectJ 的方式则更为强大,它允许...

    spring5基于aspectj实现aop操作所需jar包

    spring5基于aspectj实现aop操作所需jar包 com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.ar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar spring-aspects-5.2.6....

    Spring2.X以AspectJ 式AOP 配置事务

    博文链接:https://log-cd.iteye.com/blog/213445

    Spring 使用AspectJ 实现 AOP(基于xml文件、基于注解)

    本教程将探讨如何在Spring中结合AspectJ实现AOP,包括基于XML配置和基于注解的方式。 **一、AOP基本概念** AOP的核心概念有切面(Aspect)、连接点(Join Point)、通知(Advice)、切点(Pointcut)和引入...

    spring AspectJ aop学习

    为了在Spring应用中使用AspectJ,我们需要在配置文件中启用AspectJ自动代理,并添加相关的依赖。例如,在Spring XML配置中: ```xml &lt;aop:aspectj-autoproxy /&gt; ``` 同时,在Maven或Gradle构建工具中引入AspectJ...

    基于框架的Web开发-基于AspectJ的AOP.doc

    总结来说,基于@AspectJ的AOP使得在Web开发中可以方便地实现横切关注点,将业务逻辑与辅助功能(如日志、事务处理)分离,提高了代码的模块化程度和可维护性。通过注解和XML配置,我们可以轻松地定义和应用切面,...

    Spring 使用AspectJ 实现 AOP之前置通知小例子

    标题提到的"Spring 使用AspectJ 实现 AOP之前置通知小例子",指的是利用AspectJ在Spring中实现AOP的一种特定类型的通知——前置通知(Before advice)。前置通知在目标方法执行之前运行,但不会阻止方法的执行。这种...

    Spring的AOP依赖包-AspectJ

    Spring的AOP(面向切面编程)是一种强大的编程模型,它允许程序员在不修改源代码的情况下,通过插入额外的...在Spring4.3.7版本中,AspectJ的集成进一步完善了Spring的AOP框架,为开发者提供了更丰富的工具和可能性。

Global site tag (gtag.js) - Google Analytics