Spring之AOP注解配置

1、导入相应jar包

2、引入约束并配置XML文件

 1 <beans xmlns="http://www.springframework.org/schema/beans"
 2        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3        xmlns:aop="http://www.springframework.org/schema/aop"
 4        xsi:schemaLocation="http://www.springframework.org/schema/beans
 5         http://www.springframework.org/schema/beans/spring-beans.xsd
 6         http://www.springframework.org/schema/aop
 7         http://www.springframework.org/schema/aop/spring-aop.xsd ">
 8
 9     <!-- 1 配置对象-->
10     <bean id="book2" class="helloworld.aop.Book"></bean>
11     <bean id="mybook2" class="helloworld.aop.MyBookAuto"></bean>
12
13      <!-- 2 配置AOP操作-->
14     <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
15
16 </beans>

3、加上注解

MyBookAuto.class
 1 package helloworld.aop;
 2
 3 import org.aspectj.lang.ProceedingJoinPoint;
 4 import org.aspectj.lang.annotation.After;
 5 import org.aspectj.lang.annotation.Around;
 6 import org.aspectj.lang.annotation.Aspect;
 7 import org.aspectj.lang.annotation.Before;
 8
 9 /**
10 * 使用注解方式方式配置AOP操作
11 * */
12 @Aspect
13 public class MyBookAuto {
14
15     @Before(value = "execution(* helloworld.aop.Book.*(..))")
16     public void beforeFn(){
17         System.out.println("前置操作");
18     }
19
20     @After(value = "execution(* helloworld.aop.Book.*(..))")
21     public void afterFn(){
22         System.out.println("后置操作");
23     }
24
25 //    环绕通知
26     @Around(value = "execution(* helloworld.aop.Book.*(..))")
27     public void aroundFn(ProceedingJoinPoint proceedingJoinPoint){
28         System.out.println("方法之前...");
29
30 //        被执行的增强的方法
31         try {
32             proceedingJoinPoint.proceed();
33         } catch (Throwable throwable) {
34             throwable.printStackTrace();
35         }
36
37         System.out.println("方法之后...");
38     }
39
40 }

book.class

1 package helloworld.aop;
2
3 public class Book {
4
5     public void add(){
6         System.out.println("add执行");
7     }
8 }

测试代码:

1 //        使用注解方式方式配置AOP操作
2         ApplicationContext context2 = new ClassPathXmlApplicationContext("beans_aop2.xml");
3         Book book2 = (Book) context2.getBean("book2");
4         book2.add();

运行结果:

1 方法之前...
2 前置操作
3 add执行
4 方法之后...
5 后置操作
6
7 Process finished with exit code 0
时间: 2024-11-24 16:37:34

Spring之AOP注解配置的相关文章

Spring AOP 注解配置实例

Spring AOP注解例子 一:导入相关jar包. 首先导入Spring的相关包(这里就不多说了,我这里是3.2.4版本的) 然后导入AOP注解的相关包(不是spring的包)aspectjrt-1.6.7.jar和aspectjweaver-1.6.8.jar和aopalliance.jar (注意这里最好是1.6.7以上的版本,不然容易出错,折腾了我好久,最后才发现是包的版本问题. 所以这里一定要注意,spring 2.0以后的最好是用1.6.7的版本) 二: 建一个class类作为切入面

AOP注解配置

1.--------AOP注解配置---------- (1)在spring配置文件中启用AOP注解 <aop:aspectj-autoproxy/> (2)编写切面组件,使用以下注解定义切入点,通知等 @Aspect : 将当前类指定为切面组件 @Pointcut : 定义切入点 @Around("切入点引用") @Before("切入点引用") @After("切入点引用") @AfterReturning(pointcut=&q

spring Aop注解配置

①<!-- 启用AOP --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> ②<!-- 配置扫描标注注解的包 --> <context:component-scan base-package="com.tz.spring.dao,com.tz.spring.service,com.tz.spring.advice"></context:component-scan>

《Java从入门到放弃》入门篇:spring中AOP的配置方式

spring中最核心的两个东东,一个IOC,一个AOP. AOP(Aspect-OrientedProgramming)面向方面编程,也可以叫面向切面编程. 从一个新人的角度可以这样来理解:一般软件中的功能,我们可以分为两大类,一类是业务功能,一类是系统功能. 业务功能是指这个软件必须要用到的,没有的话客户就不给钱的.比如淘宝APP,如果你只能在上面浏览商品而不能购物,那就说明业务功能太监了···. 系统功能主要是指与业务无关,没有这块内容也不影响软件使用的.比如日志管理.权限处理等. AOP主

Spring MVC全注解配置 - 无web.xml

Serlvet 3以后,我们可以使用注解来配置Servlet,对于像Spring这类的框架来说是一个很好的适应.Spring也对此特性加入了很多的新功能.本文就将简单的对之前的xml配置转换为java代码的配置.代码配置让程序员们觉得更加具有流程化,不像配置很多代码程序员们都不愿意look into. 接下来,进行替换我们之前的web.xml和spring-mvc.xml的配置.也就是在你的web工程里面看不到这两个配置文件了.(可能有的童鞋会说,这样配置可能对以后的修改不方便,无法达到只修改配

Spring MVC4 纯注解配置教程

阅读本文需要又一定的sping基础,最起码要成功的运行过一个SpringMvc项目. 在传统的Spring项目中,我们要写一堆的XML文件.而这些XML文件格式要求又很严格,很不便于开发.而网上所谓的0配置,并不是纯粹的0配置,还是要写一些xml配置,只是用了几个@Service,@Controller注解而已. 在这里,我讲介绍一种新的配置方式,一行XML代码都不需要,什么web.xml,Application-context.xml,Beans.xml,统统去死吧! 首先建立一个Maven项

spring 的纯注解配置

不写 bean.xml 文件,所有配置都用注解来实现 基于注解的 IoC 配置已经完成,但还是离不开 xml 配置文件,是因为有一句很关键的配置: <!-- 告知spring框架在,读取配置文件,创建容器时,扫描注解,依据注解创建对象,并存入容器中 --> <context:component-scan base-package="com.fgy"></context:component-scan> 另外,数据源和 QueryRunner(JdbcT

spring mvc jfreechar注解配置及数据库访问

1.action类,使用注解配置的: package com.t5.manage.action;import java.awt.Font;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.Map; import javax.annotation.Resource;import javax.servl

Spring AOP—注解配置方法的使用

Spring除了支持Schema方式配置AOP,还支持注解方式:使用@AspectJ风格的切面声明. 1 启用对@AspectJ的支持 Spring默认不支持@AspectJ风格的切面声明,为了支持需要使用如下配置: 这样Spring就能发现@AspectJ风格的切面并且将切面应用到目标对象. 2 声明切面 @AspectJ风格的声明切面非常简单,使用@Aspect注解进行声明: 然后将该切面在配置文件中声明为Bean后,Spring就能自动识别并进行AOP方面的配置: 该切面就是一个POJO,