`
qkf15274
  • 浏览: 9301 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring3.0 - AOP编程

阅读更多
了解一下基础知识:
切面(Aspect):关注点的模块化,关注点可能横切多个对象
连接点(Join point): 运用程序执行过程中需要入插切面模块的某一点, 主要强调的是一个具体的”点”
概念,该点可以是一个方法、一个属性、构造函数、类静态初始化块,甚至一条语句。
切入点(Pointcut):一个或多个连接点,可以理解成一个点的集合
通知(Advice):定义切面中实际的逻辑实现,如日志的写入实际代码,或是安全检查的实际代码。
  前置通知(before advice):在方法的调用之前
  最终通知(after advice):在方法的最后,并且在所有其它通知之后
  环绕通知(around advice):分别在方法的调用之前和之后
  后置通知(after returning advice):在方法的最后
  异常通知(after throwing advice):在方法出现异常时

第一步,导入相关的jar包:aspectjweaver-1.6.8.jar(提供注解org.aspectj.lang.annotation.Aspect等)、spring-aop-3.0.4.RELEASE.jar(提供自动代理创建器org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator)、aopalliance-1.0.jar(提供拦截器功能)。
第二步,配置springMVC-servlet.xml
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"

<!--配置aop自动创建代理-->
    <aop:aspectj-autoproxy/>
    <bean id="aopSecurity" class="com.aliks.test.aop.util.SecurityHandlerAOP"/>

第三步,AOP类处理
@Component
@Aspect
public class SecurityHandlerAOP {
private int num=0;
// 在执行指定方法前执行
@Before("execution(* com.aliks.test.mvc.service.*.*(..))")
protected void checkUserSecurity() {
System.out.println("在方法执行前通知!");
num++;
System.out.println("访问次数:"+num);
}

@After("execution(* com.aliks.test.mvc.service.*.*(..))")
protected void checkResult() {
System.out.println("在方法执行后通知!");
}

}
第四步,需要切面的类和方法
@Service("userManager")
public class UserManagerImpl implements UserManager {

@Override
public void addUser(String name) {
System.out.println("add user name:"+name);

}
第五步:controller层请求进入
@Controller
public class HelloWoldController {
@Autowired
private UserManager userManager;

@RequestMapping("/hello")
public ModelAndView helloWold()
{
System.out.println("start");
String message =new ToolTest().getString();
//调用service层
//增加用户名称测试
userManager.addUser("admin Test");
return new ModelAndView("hello","message",message);
}
}
第六步:测试结果
在方法执行前通知!
访问次数:1
add user name:admin Test
在方法执行后通知!


切入点(Pointcut):一个或多个连接点,可以理解成一个点的集合
// 使用一个返回值为void,方法体为空的方法来命名切入点 
@Pointcut("execution(* com.aliks.test.mvc.service.*.*(..))")
private void check(){}
// 在执行指定方法前执行
@Before("check()")
protected void checkBefore() {
System.out.println("Before-在方法执行前通知!");
num++;
System.out.println("Before-访问次数:" + num);
}
分享到:
评论

相关推荐

    spring 3.0 jar 所有开发包及开发项目实例

    spring 3.0 jar 最新所有开发包及开发项目实例 ...org.springframework.aop-3.0.0.M4.jar: Spring的AOP实现 org.springframework.aspects-3.0.0.M4.jar: 提供对AspectJ框架的整合 很高新跟大家分享

    spring3.0jar包

    ◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑...

    spring-framework-3.0.0.M4-with-docs

    spring3.0.M4 org.springframework.asm-3.0.0.M4.jar: 提供对ASM(一个字节码框架)的简单封装 org.springframework.expression-3.0.0.M4.jar: spring表达式语言 org.springframework.test-3.0.0.M4.jar: ...

    struts2+spring2.5+hibernate3基础包(包括AOP)

    按照ssh的基本应用逐步添加的jar包,包含AOP切面编程的包。事务的提交建议用AOP去做。

    Spring+3.x企业应用开发实战光盘源码(全)

     第15章:对Spring MVC框架进行详细介绍,对REST风格编程方式进行重点讲解,同时还对Spring 3.0的校验和格式化框架如果和Spring MVC整合进行讲解。  第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的...

    陈开雄 Spring+3.x企业应用开发实战光盘源码.zip

     第15章:对Spring MVC框架进行详细介绍,对REST风格编程方式进行重点讲解,同时还对Spring 3.0的校验和格式化框架如果和Spring MVC整合进行讲解。  第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的...

    java8源码-spring-learning:spring学习

    AOP:面向切面编程可以将应用业务逻辑和系统服务分离,以实现高内聚。 容器:Spring 负责创建和管理对象(Bean)的生命周期和配置。 MVC:对 web 应用提供了高度可配置性,其他框架的集成也十分方便。 事务管理:...

    spring框架api中文版.zip(spring开发手册)

    新特性和增强功能在Spring框架3.0 2.1。 Java 5 2.2。 改进文档 2.3。 新的文章和教程 2.4。 新模块的组织和构建系统 2.5。 概述的新特性 2 5 1。 核心api更新Java 5 2 5 2。 弹簧表达式语言 2 5 3。 这个控制反转...

    Spring.3.x企业应用开发实战(完整版).part2

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    spring发展史与优势

    Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC 和持久层 Spring JDBC ...

    Spring3.x企业应用开发实战(完整版) part1

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    spring.net中文手册在线版

    它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。 第一章 序言 第二章 ...

    Spring攻略(第二版 中文高清版).part1

    第3章 Spring AOP和AspectJ支持 112 3.1 启用Spring的AspectJ注解支持 113 3.1.1 问题 113 3.1.2 解决方案 113 3.1.3 工作原理 113 3.2 用AspectJ注解声明aspect 115 3.2.1 问题 115 3.2.2 解决方案...

    超详细的Spring框架讲解,就这一篇!足矣

    Spring框架概述1、什么是Spring2、Spring框架的优点3、Spring框架体系结构Spring框架——控制反转(IOC)1、IOC介绍2、基于配置的IOC2.1、导入jar包2.2、配置文件2.3、测试3、基于注解的IOC3.0、导包3.1、开启注解...

    Spring攻略(第二版 中文高清版).part2

    第3章 Spring AOP和AspectJ支持 112 3.1 启用Spring的AspectJ注解支持 113 3.1.1 问题 113 3.1.2 解决方案 113 3.1.3 工作原理 113 3.2 用AspectJ注解声明aspect 115 3.2.1 问题 115 3.2.2 解决方案...

    springmybatis

    mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五...

    基于SpringBoot的家庭理财管理系统源码+数据库+项目说明.zip

    | AOP | 面向切面编程| |Lombok |简化对象封装工具| |Jackson | 封装json工具 | ## 前端技术 | 技术 | 说明 | | :------------ |:---------------:| | ZUI | 基于BootStrap封装编写的前端框架 | | HighCharts | ...

    ssh(structs,spring,hibernate)框架中的上传下载

     需要指定的是Spring 1.2.5提供了两套Hibernate的支持包,其中Hibernate 2相关的封装类位于org.springframework.orm.hibernate2.*包中,而Hibernate 3.0的封装类位于org.springframework.orm.hibernate3.*包中,...

    spring3.1中文参考文档

    第2章 Spring 3.0的新特性和增强 ............................................................................................................ 22 2.1 Java 5 .................................................

Global site tag (gtag.js) - Google Analytics