Spring AOP(二)(Spring中基于AOP的@AspectJ)
2017-10-19 19:57
337 查看
@AspectJ 作为通过 Java 5 注释注释的普通的 Java 类,它指的是声明 aspects 的一种风格。
声明一个Aspect->声明一个切入点(需在xml配置文件中添加<aop:aspectj-autoproxy/>)
代码示例:
1.poem.xml(注意添加Spring AOP依赖的jar包aspectjrt.jar aspectjweaver.jar)
2.创建Student.java
3.创建Logger.java
4.application.xml配置
5.测试类的使用
6.运行结果
声明一个Aspect->声明一个切入点(需在xml配置文件中添加<aop:aspectj-autoproxy/>)
代码示例:
1.poem.xml(注意添加Spring AOP依赖的jar包aspectjrt.jar aspectjweaver.jar)
<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.8.10</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.6.8</version>
2.创建Student.java
public class Student { private int age; private String name; public Student() { } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Student{" + "age=" + age + ", name='" + name + '\'' + '}'; } }
3.创建Logger.java
package com.ruanjianlin.demo; import org.aspectj.lang.annotation.*; /** * Created by ruanjianlin on 2017/10/19. */ @Aspect public class Logger { @Pointcut("execution(* com.ruanjianlin..demo.*.*(..))") private void selectAll(){} @Before("selectAll()") public void beforeAdvice(){ System.out.println("beforeAdvice"); } @After("selectAll()") public void afterRunning(){ System.out.println("afterRunning"); } @AfterThrowing(value = "selectAll()",throwing = "ex") public void afterThrowing(IllegalArgumentException ex){ System.out.println("afterThrowing"+ex.toString()); } @AfterReturning(value = "selectAll()",returning = "val") public void afterReturning(Object val){System.out.println("afterRturning"+val.toString());} }
4.application.xml配置
<bean id="logger" class="com.ruanjianlin.demo.Logger"></bean> <bean id="student" class="com.ruanjianlin.demo.Student"> <property name="name" value="ruanjinlin"/> <property name="age" value="21"/> </bean> <aop:aspectj-autoproxy/>
5.测试类的使用
ApplicationContext context = new ClassPathXmlApplicationContext("application.xml"); Student student = (Student) context.getBean("student"); student.getName(); student.getAge();
6.运行结果
beforeAdvice afterRunning afterRturningruanjinlin beforeAdvice afterRunning afterRturning21
相关文章推荐
- [Spring AOP] 基于AspectJ的@AfterReturning注释示例
- spring框架的学习(四)——Spring的AOP的概述及AOP的操作(基于aspectj的xml方式)
- Intellij IDEA创建Spring项目之基于Aspectj的AOP操作(注解方式)
- day3_Spring_02_基于aspectj的注解aop操作
- 【第六章】 AOP 之 6.4 基于@AspectJ的AOP ——跟我学spring3
- (spring-第19回【AOP基础篇】)基于AspectJ和Schema的AOP
- 9、SSM框架-Spring AOP之基于XML的声明式AspectJ(9)
- Spring2.5 基于AspectJ风格的AOP问题
- Spring_Spring与AOP_AspectJ基于XML的实现
- spring基于AspectJ的AOP编程
- Spring-AOP:基于AspectJ注解的AOP
- 【第六章】 AOP 之 6.4 基于@AspectJ的AOP ——跟我学spring3
- 框架 day37 Spring3,AOP,代理模式(动态/CGLIB/工厂bean),传统AOP,AspectJ框架(基于xml/注解),切入点表达式,jdbcTemplate
- spring3.x第七章 基于@AspectJ和Schema的AOP
- 10、SSM框架-Spring AOP之基于注解的声明式AspectJ(10)
- 【第六章】 AOP 之 6.4 基于@AspectJ的AOP ——跟我学spring3
- 基于@AspectJ配置Spring AOP之一
- Spring笔记之六:AOP基于@AspectJ配置切面
- 【第六章】 AOP 之 6.4 基于@AspectJ的AOP ——跟我学spring3
- 开涛spring3(6.4) - AOP 之 6.4 基于@AspectJ的AOP