- 浏览: 1012553 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
使用 annotation 配置 AOP :
使用 Java1.5 或以上版本,我们可以使用 annotation 设置 AOP 。这样我们不再需要往 beans.xml 里面编写 aop:config 之类的配置代码。
需要在 beans.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-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<!-- 使 bean 可以使用 annotation -->
<aop:aspectj-autoproxy />
<!--
<aop:config>
<aop:aspect id="aspectDemo" ref="aspectBean">
<aop:pointcut id="somePointcut"
expression="execution(* annoaop.Component.business*(..))" />
<aop:before pointcut-ref="somePointcut"
method="validateUser" />
<aop:before pointcut-ref="somePointcut"
method="beginTransaction" />
<aop:after-returning pointcut-ref="somePointcut"
method="endTransaction" />
<aop:after-returning pointcut-ref="somePointcut"
method="writeLogInfo" />
</aop:aspect>
</aop:config>
-->
<bean id="aspectBean"
class="annoaop.AspectBean">
</bean>
<bean id="component"
class="annoaop.ComponentImpl">
</bean>
</beans>
之后我们就往我们的切面类 AspectBean 添加 annotation :
@Aspect
public class AspectBean {
// 定义切入点,切入点表达式为 Component 接口的以 business 开头的所有方法,参数使用 .. 表示所有参数
@Pointcut("execution(* annoaop.Component.business*(..))")
public void somePointcut(){
}
@Around("somePointcut()")
public void processBusiness(ProceedingJoinPoint joinPoint) throws Throwable{
System.out.println(" 执行用户验证 !");
System.out.println(" 开始事务 ");
joinPoint.proceed();
System.out.println(" 结束事务 ");
System.out.println(" 书写日志信息 ");
}
}
注意红色部分:
首先使用 @Aspect 给这个类声明为一个切面。
之后使用 @Pointcut 给 target 声明一个切入点。
然后使用 @Around 声明环绕增强 processBusiness 。参数只有一个,就是 ProceedingJoinPoint ,这个参数就代表 somePointcut 这个方法,调用 proceed() 方法则执行切入点方法。在这个环绕增强里面,我们可以轻松地按照自己的思路配置切入点执行前或者执行后需要增加的操作。
运行主方法:
执行用户验证 !
开始事务
bussiness
结束事务
书写日志信息发表评论
-
调试jdk中的源码,查看jdk局部变量
2013-06-15 23:30 1050调试jdk中的源码,查看jdk局部变量 2012-04 ... -
Eclipse快捷键 10个最有用的快捷键<转>
2013-04-11 23:28 1072Eclipse中10个最有用的快捷键组合 一个Eclip ... -
Lucene 3.6 中文分词、分页查询、高亮显示等
2012-12-09 23:35 18151、准备工作 下载lucene 3.6.1 : htt ... -
Maven实战(九)——打包的技巧(转)
2012-10-12 00:41 934“打包“这个词听起 ... -
基于Maven的web工程如何配置嵌入式Jetty Server开发调试环境(转)
2012-10-12 00:28 9231、首先在web工程的POM文件里添加依赖jar包如下: ... -
轻轻松松学Solr(1)--概述及安装[转]
2012-09-18 14:59 993概述 这段时间对企 ... -
分析Netty工作流程[转]
2012-09-04 19:02 886下面以Netty中Echo的例 ... -
让eclipse在ubuntu下面好看一点
2012-03-27 10:17 916<p> </p> <h1 cla ... -
zookeeper安装和应用场合(名字,配置,锁,队列,集群管理)[转]
2012-01-12 17:59 1647安装和配置详解 本文 ... -
Jakarta-Common-BeanUtils使用笔记[转]
2012-01-10 14:13 1154Jakarta-Common-BeanUtils ... -
一个关于Java Thread wait(),notify()的实用例【转】
2012-01-07 16:05 1020///// // ProducerConsume ... -
Java基础:Java中的 assert 关键字解析【转】
2012-01-06 19:50 1057J2SE 1.4在语言上提供了 ... -
一篇不错的讲解Java异常的文章(转载)----感觉很不错,读了以后很有启发[转]
2012-01-06 15:02 1263六种异常处理的陋习 ... -
如何解决HP QC(Quality Center)在Windows 7下不能工作的问题
2011-12-26 10:48 1579HP QC(Quantity Center) 是一款不错的测 ... -
JAVA读写文件,中文乱码 【转】
2011-12-19 23:43 2117最近在做HTML静态生成,需要从硬盘上把模版文件的内容读出来。 ... -
Java 6 JVM参数选项大全(中文版)【转】
2011-12-19 19:51 969Java 6 JVM参数选项大全(中文版) 作者 ... -
使用assembly plugin实现自定义打包【转】
2011-12-13 01:58 968在上一篇文章中,讨论到在对maven的机制不熟悉的情况下,为了 ... -
使用maven ant task实现非标准打包[转]
2011-12-13 01:56 1046maven很强大,但是总有些事情干起来不是得心应手,没有使用a ... -
Java日期转换SimpleDateFormat格式大全【转】
2011-12-08 20:22 131124小时制时间 显示: public clas ... -
使用Spring的表单标签库
2011-11-22 20:08 107013.9. 使用Spring的 ...
相关推荐
在本资料"Spring_Annotation_AOP"中,我们将深入探讨Spring框架如何利用注解实现AOP,以及其背后的原理和实践应用。 面向切面编程(AOP)是一种编程范式,旨在提高代码的可维护性和可重用性,通过将关注点分离,...
Spring 2.0引入了基于注解的AOP配置,极大地简化了AOP的使用。这篇博客文章将探讨如何在Spring 2.0中使用AOP实例,特别是通过注解来实现。 首先,我们需要了解AOP的基本概念。AOP的核心是切面(Aspect),它封装了...
为了启用注解驱动的AOP,需要在Spring配置文件中添加`<aop:aspectj-autoproxy>`元素,或者在Java配置中使用`@EnableAspectJAutoProxy`注解。 ```xml <aop:aspectj-autoproxy /> ``` 或者 ```java @Configuration ...
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,通过插入额外的代码(称为切面)来增强应用程序功能...通过注解配置,AOP的使用变得更加简洁,降低了学习和使用的门槛。
本篇文章将探讨Spring框架中的一个重要特性——AOP(面向切面编程)。AOP为开发者提供了在不修改源代码的情况下,对程序进行功能增强的能力,使得我们可以更方便地处理如日志记录、事务管理、权限控制等横切关注点。...
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点问题,如日志、事务管理、安全性等。本示例将简要介绍如何在Spring应用中实现AOP,通过实际的...
在Spring中,我们可以使用XML配置或Annotation来声明切面。本文主要关注Annotation方式,因为它更直观、简洁。`@Aspect`是声明一个类为切面的Annotation,而`@Before`、`@After`、`@Around`、`@AfterReturning`和`@...
本文将详细介绍如何在Spring中使用AOP,特别是通过注解的方式。 首先,我们需要理解AOP的基本概念。AOP的核心是切面(Aspect),它封装了特定的关注点,如日志记录或事务管理。切点(Pointcut)定义了在何时应用...
在Spring 3.0.5中,为了在AOP中使用`HttpServletResponse`,你需要创建一个切面,该切面包含一个通知,该通知可以访问并操作`HttpServletResponse`。通常,你会在切面中定义一个环绕通知(Around Advice),因为它...
2. **轻量级**:与一些需要预编译器的AOP框架不同,Spring AOP无需特殊的工具或编译步骤即可使用。这种轻量级的特性使得Spring AOP更易于学习和集成。 3. **灵活的通知模型**:Spring AOP提供了多种类型的通知,...
在Spring框架中,AOP主要通过代理模式实现,可以分为基于XML配置和基于注解两种方式。本例中,我们关注的是注解式AOP,它更加简洁且易于使用。 在Spring中,我们可以通过定义一个带有`@Aspect`注解的类来创建一个切...
Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是...在`myaop`项目中,你可以找到具体的示例代码,包括切面类、切入点表达式以及相应的注解使用,通过这些示例可以更深入地理解Spring AOP的注解配置。
- **基于注解的AOP**:在Spring 2.5之后引入,无需编写XML配置,直接在方法上使用注解如`@Before`, `@After`, `@Around`, `@AfterThrowing`等定义通知。 ### 3. Spring AOP的核心组件 - **`@Aspect`**:标记一个类...
《深入解析Spring AOP框架——以spring-aop.jar为例》 Spring AOP,全称Aspect Oriented Programming(面向切面编程),是Spring框架的核心部分之一,它为Java开发者提供了强大的面向切面的编程能力。本文将围绕...
在Spring框架中,AOP可以通过基于XML的配置或者基于注解的方式实现。但在实际开发过程中,可能会遇到配置好的AOP切面不生效的问题,本文将针对这一现象进行深入分析,并提供相应的解决方案。 #### 一、问题定位 当...
学习和熟练掌握Spring Annotation,能够帮助开发者编写更加简洁、易读的代码,同时提高开发效率。通过实践和研究Spring提供的各种注解,我们可以更灵活地构建和管理Spring应用。在实际项目中,结合源码分析,可以更...
2. ch20_aop_annotation:这部分内容可能是关于使用注解来定义和实现切面的教程。 3. ch18_aoptest:可能是一些AOP的测试案例,用于演示如何在实际应用中使用和测试AOP功能。 4. ch18_aop:可能是关于AOP基础理论或...
本笔记主要聚焦于Spring框架中的重要概念——面向切面编程(AOP),并对比讲解了两种实现方式:注解(Annotation)实现和XML配置实现。AOP允许我们在程序执行过程中插入自定义的行为,如日志记录、事务管理等,使得...
- **XML配置的AOP**:在Spring配置文件中定义<aop:config>元素,使用<aop:aspect>定义切面,<aop:before>、<aop:after>等定义通知,<aop:pointcut>定义切入点。 **4. 应用示例** 假设我们有一个`UserService`,需要...
- **XML配置**:在Spring的配置文件中,可以使用<aop:config>标签来定义切面,<aop:pointcut>定义切点,<aop:advisor>定义通知,<aop:aspect>将切点和通知关联起来。 - **注解配置**:Spring 2.5引入了基于注解的...