Spring 3.0 Aop 入门

关于Aop的原理,动态代理,反射,之类的底层java技术网上搜一堆一堆的。。我就不多说了,主要说在spring上使用aop的方法。

首先不得不说一下的就是,spring aop的支持需要外部依赖包:

aopalliance.jar

aspectjrt.jar

aspectjweaver.jar

cglib-nodep-2.2.2.jar

commons-logging-1.1.1.jar

还有经典的日志jar

log4j-1.2.16.jar.

这些都是spring aop 需要的外部包

好了,入正题了:

首先在spring配置文件中添加

<bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" />

来启用@AspectJ支持

然后随便新建一个类,就用来查询学生信息吧:

public class StudentDAO implements DAO{
public void query(){
//db操作,这里就打印意思下..
System.out.println("query student");
}
}

这个类就是一个平常的查询学生信息的类,加入我们想要执行一些权限限制,譬如管理员才可以查看学生的信息,或者日志记录等操作,加入按照平常的做法,

可能会在业务方法(上面的query()方法)中添加一些其他逻辑代码,会使代码非常混乱,因为权限限制,日志记录等操作不属于业务范畴之内。

因此可以新建一个处理这些操作的类:

@Aspect

public class AopCatch{

@Before("execution(* test.aop.StudentDAO.query(..))")

public void beforeMethod(){

//这里可以进行一些在query方法执行之前的操作

}

@After("execution(* test.aop.StudentDAO.query(..))")
public void afterMethod(){

//这里可以进行一些在query方法执行之后的操作

}

}

 这样就可以在业务方法执行的时候进行一些非业务范畴之外的逻辑处理,并且不影响业务代码。

以上纯属个人鄙见,有什么错误请轻拍- -#。

时间: 2024-10-06 00:53:22

Spring 3.0 Aop 入门的相关文章

Spring @AspectJ 实现AOP 入门例子(转)

AOP的作用这里就不再作说明了,下面开始讲解一个很简单的入门级例子. 引用一个猴子偷桃,守护者守护果园抓住猴子的小情节. 1.猴子偷桃类(普通类): Java代码   package com.samter.common; /** * 猴子 * @author Administrator * */ public class Monkey { public void stealPeaches(String name){ System.out.println("[猴子]"+name+&quo

Spring 3.0 AOP (一)AOP 术语

关于AOP.之前我已写过一个系列的随笔: <自己实现简单的AOP>,它的关注点在于实现.实现语言是C#,实现方式为 自定义实现 RealProxy 抽象类.重写Invoke方法,以便进行方法调用的拦截.借此实现AOP.感兴趣的园友可以去瞅瞅. 今天.我们来看一下Spring中的AOP,本随笔着重关注AOP术语. 先说一句废话:如果你对AOP不是很熟悉.第一次看到这些术语可能会有点迷惑,不过没有关系.坚持继续向下看,然后再反过来看一遍,有些东西就能恍然大悟了. 连接点(Joinpoint) 连接

spring boot2.0快速入门(一)

maven构建方式一:pom.xml文件中用parent标签配置依赖传递 开发工具:eclipse 版本:Oxygen.3a Release(4.7.3a) 开发环境 :win10 步聚1 :新建maven工程 勾选创建一个简单工程,跳过骨架选择,点击下一步,如图: 在配置窗口中输入组织标识,项目名称标识,发布版本,并将打包方式修改为jar,点击完成,如图: 步聚2:修改pom.xml文件 1. 打开pom.xml文件,初始显示代码如下: 2.在pom.xml添加配置如下: 步聚3:在项目中创建

使用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

Extjs5.0从入门到实战开发信息管理系统(Extjs基础、Extjs5新特性、Spring、Spring mvc、Mybatis)视频教程

Extjs5.0从入门到实战开发信息管理系统(Extjs基础.Extjs5新特性.Spring.Spring mvc.Mybatis)视频教程下载   联系QQ:1026270010 Extjs作为一款优秀的JS前端开发框架以其良好的架构.丰富的UI组件库.完善的文档和社区支持等诸多优点拥有广泛的市场应用空间,开发人员无需过多的关注HTML.CSS甚至各种常用JS算法,只需把精力放在业务逻辑上,利用各种组件的相互组合调用便可轻松而高效的开发出系统的前端页面. Extjs5在之前版本的基础上又推出

Spring 2.0 的AOP介绍及其通知类型

Spring 2.0的AOP 在Spring 2.0中最激动人心的增强之一是关于Spring AOP,它变得更加便于使用而且更加强大,主要是通过复杂而成熟的AspectJ语言的支持功能来实现,而同时保留纯的基于代理的Java运行时.Spring 2.0的AOP提供给我们一种新的思考程序结构的方法,能够解决很多纯OOP无法解决的问题--让我们能够在一个模块中实现某些需求,而不是以发散的方式实现.Spring 2.0允许用户选择使用基于模式或@AspectJ注解的方式来自定义切面.这两种风格都支持所

Spring AOP入门——概念及注意点

AOP是什么? AOP从功能上来说就是在执行某些业务逻辑的前后,可以允许你动态地添加一些操作(比如记录日志.或者是判断是否有权限等),这些操作的添加,完全不耦合于原来的业务逻辑,从而对原有业务逻辑完全是透明. 也就是说,这段操作和业务逻辑是完全分开的,它可能在项目中需要横切多个模块,且其自身也是一个独立的模块,贯穿了整个项目.我们完全可以根据需要启用或者停用这个功能. AOP的典型应用就是事务管理和日志. AOP中的概念 下面这些术语并不是Spring定义的.由于AOP中的术语不是那么形象,所以

Spring MVC 教程,快速入门,深入分析

资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf SpringMVC核心配置文件示例.rar 作者:赵磊 博客:http://elf8848.iteye.com 目录  一.前言二.spring mvc 核心类与接口三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如j

Spring Data 系列(一) 入门

认识一个框架的用途和作用,其实很简单.反其道而行之,如果不用某框架,我们的开发工作会怎么样?我们必须要做那些额外的工作. 为了保证系列的完整性,也专门写一篇文章,作为本系列的引子. 考虑到简单性和专一性,本文准备的例子,弱到几点. 主要功能 通过比对,了解spring JdbcTemplate的功能,作为Spring Data的入门. 搭建一个实验的例子,作为将来学习Spring Data的基础. 暂时不考虑事务(事务可以很简单通过AOP方式切入进来) 1.准备 JDK:1.7 spring:4