`
domain
  • 浏览: 20000 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

Spring 实战(二) aop

阅读更多
接前面做的一个例子,我们在注册并操作数据库之前要求输出一句提示语句(仅做示范),即在RegistAction.java中调用方法onSubmit()之前织入一个通知,用来输出提示语句.

如下:
 
定义通知类  StudentDaoBeforeAdvice.java
java 代码
  1. public class StudentDaoBeforeAdvice implements MethodBeforeAdvice {   
  2.     private Student student;   
  3.     public void setStudent(Student student){   
  4.         this.student=student;   
  5.     }   
  6.        
  7.     public void before(Method method, Object[] args, Object target)   
  8.             throws Throwable {   
  9.            
  10.         // TODO Auto-generated method stub   
  11.         //  to do what you want here!    
  12.         System.out.println("通知已织入....数据即将写入");   
  13.        
  14.     }   
  15. }  

下面在Spring配置文件中配置  通知器 ,通知,自动代理
applicationContent.xml

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"   
  3.  "http://www.springframework.org/dtd/spring-beans.dtd">  
  4.   
  5. <beans>  
  6.        
  7.        
  8.     <bean id="viewResolver"    class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  9.         <property name="viewClass">  
  10.         <value>org.springframework.web.servlet.view.JstlViewvalue>  
  11.         </property>  
  12.         <property name="prefix">  
  13.             <value>/result/value>  
  14.         </property>  
  15.         <property name="suffix">  
  16.             <value>.jspvalue>  
  17.         </property>  
  18.    </ bean>  
  19.   
  20.        
  21.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"    
  22. destroy-method="close">  
  23.         <property name="driverClassName">  
  24.             <value>net.sourceforge.jtds.jdbc.Drivervalue>  
  25.         </property>  
  26.         <property name="url">  
  27.             <value>jdbc:jtds:sqlserver://127.0.0.1:1433/testvalue>  
  28.         </property>  
  29.         <property name="username">  
  30.             <value>savalue>  
  31.         property>  
  32.         <property name="password">  
  33.             <value>savalue>  
  34.         </property>  
  35.     </bean>  
  36.   
  37.        
  38.     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
  39.         <property name="dataSource">  
  40.             <ref bean="dataSource" />  
  41.         </property>  
  42.     </bean>  
  43.   
  44.        
  45.     <bean id="simpleMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  
  46.         <property name="urlMap">  
  47.             <map>  
  48.                 <entry key="/regist.do">  
  49.                     <value>RegistActionvalue>  
  50.                 </entry>  
  51.            </ map>  
  52.        </ property>  
  53.    < /bean>  
  54.   
  55.        
  56.   
  57.        
  58.     <bean id="studentDaoTarget" class="phoenix.spring.impl.StudentDaoImp">  
  59.         <property name="jdbcTemplate">  
  60.             <ref bean="jdbcTemplate" />  
  61.         </property>  
  62.     </bean>  
  63.            
  64.              
  65.     <bean id="studentDao" class="org.springframework.aop.framework   
  66. .autoproxy.BeanNameAutoProxyCreator">  
  67.         <property name="beanNames"><value>RegistActionvalue>property>  
  68.         <property name="interceptorNames">  
  69.                 <value>advisorvalue>       
  70.         </property>  
  71.     </bean>  
  72.   
  73.        
  74.     <bean id="advice" class="phoenix.spring.aop.StudentDaoBeforeAdvice">  
  75.     </bean>  
  76.   
  77.        
  78.     <bean id="advisor" class="org.springframework.aop.support.   
  79. RegexpMethodPointcutAdvisor">  
  80.         <property name="advice">  
  81.             <ref local="advice" />  
  82.         </property>  
  83.         <property name="patterns">  
  84.             <list>  
  85.                 <value>.*onSubmit.*value>  
  86.                 org.springframework.web.*   
  87.             </list>  
  88.         property>  
  89.     </bean>  
  90.   
  91.        
  92.     <bean id="RegistAction" class="phoenix.spring.impl.RegistAction">  
  93.         <property name="commandClass">  
  94.             <value>phoenix.spring.model.Studentvalue>  
  95.         </property>  
  96.         <property name="studentDaoImp">  
  97.             <ref local="studentDaoTarget"/>  
  98.        </ property>  
  99.         <property name="success_view">  
  100.             <value>successvalue>  
  101.         </property>  
  102.         <property name="fail_view">  
  103.             <value>failvalue>  
  104.        </ property>  
  105.     </bean>  
  106. </beans>  
*   <value></value>org.springframework.web.* 在定义切点时,要加上这句代码,否则自动代理无效.详情请见

至此,就可以完成此aop应用了,当注册验证成功并在写入数据之前,会输出信息:
通知已织入....数据即将写入



分享到:
评论
1 楼 tiger.passion 2007-04-09  
代码看点有点眼花,建议放在java代码格式内

相关推荐

    spring-aop.jar

    二、spring-aop.jar组件解析 1. **AOP代理**:Spring AOP支持两种代理方式,即JDK动态代理和CGLIB代理。JDK代理用于实现接口的类,而CGLIB代理则用于未实现接口的类。spring-aop.jar包含了这些代理机制的相关类,如...

    Spring 实战 (中文第4版) PDF + source code

    9. **PDF阅读**:"Spring实战(第4版).epub"是电子书格式,便于在各种设备上阅读,方便随时查阅和学习。 通过这本书,读者可以系统地学习Spring框架,从基础到高级,从理论到实践,提升自己的Java开发技能。同时,...

    spring-aop源码

    《深入剖析Spring AOP源码》 Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它提供了一种在不修改源代码的情况下,对现有代码进行功能增强的技术。本文将深入探讨Spring ...

    spring实战全部源代码.zip

    《Spring实战》第五版的源代码压缩包"spring实战全部源代码.zip"包含了全面的示例项目,旨在帮助读者深入理解和应用Spring框架。这个压缩包中的"spring-in-action-5-samples-master"目录揭示了书中的各个实战案例,...

    Spring AOP配置实例

    **Spring AOP配置实例** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的核心组件之一,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。AOP允许开发者定义“切面”,这些...

    spring aop 学习笔记

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和抽象化的方法来处理系统中的交叉关注点,如日志、事务管理、安全性等。本学习笔记将深入探讨Spring AOP的核心概念、工作原理以及实际...

    SpringiA4_SourceCode:Spring实战第四版源码,学习用。

    《Spring实战第四版》是Java开发领域中一本深入讲解Spring框架的经典著作,源代码的提供为读者提供了亲自动手实践的机会,有助于加深理解和应用。在这个压缩包中,包含的文件名为"spring4源码_Code4",我们可以推测...

    spring2.5AOPdemo详细资料

    这个"spring2.5AOPdemo详细资料"很可能是针对Spring 2.5版本的一个AOP实战示例,帮助开发者了解并掌握AOP的概念、原理以及在实际开发中的应用。 AOP的核心概念包括切面(Aspect)、通知(Advice)、连接点(Join ...

    基于注解配置和使用spring AOP(spring mvc框架)

    二、基于注解的AOP配置 1. **启用AOP代理**:在Spring配置文件中,通过&lt;aop:aspectj-autoproxy/&gt;元素启用基于注解的AOP。 ```xml &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    spring2-aop入门实例教程

    #### 二、面向切面编程(AOP)基础 - **AOP概念**:面向切面编程是一种编程范式,旨在将那些分散在整个应用程序中的非核心业务逻辑(如日志记录、性能监控等)从业务代码中分离出来,从而提高代码的可读性和可维护性...

    spring注解aop demo

    **二、Spring注解AOP的使用** 在Spring中,我们可以使用注解来声明切面、定义切点以及通知。主要的注解包括: 1. **@Aspect**: 标记一个类作为切面,通常包含切点表达式和通知方法。 2. **@Before**: 前置通知,...

    spring_in_action-sixth-edition.pdf

    "Spring 实战第六版" Spring Framework 是一个广泛使用的 Java 应用程序框架,它提供了一个通用的编程模型和配置机制,帮助开发者快速构建企业级应用程序。下面是对 Spring Framework 的详细知识点总结: 1. 什么...

    Spring基础:Spring AOP简单使用

    Spring AOP,全称Aspect Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它扩展了传统的面向对象编程(OOP),使得开发者能够更好地处理系统中的横切关注点,如日志、事务管理、权限控制等。...

    spring-aop-4.0.0.RELEASE

    《Spring AOP 4.0.0.RELEASE:深度解析与应用》 Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它为开发者提供了声明式事务管理、日志记录、权限控制等核心功能。在4.0.0....

    Spring Aop的简单实现

    Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它为应用程序提供了声明式的企业级服务,如...通过对该项目的深入学习,你将能够更好地理解和掌握Spring AOP的实战应用。

    Spring Aop使用实例

    这个项目很可能是包含了一个Spring AOP的实战例子,可能包含了以下内容: - `LoggingAspect`类:定义切面,包含`@Before`和`@After`通知。 - `Service`接口及其实现:业务层接口和实现,被AOP代理。 - `...

    spring_aop.zip

    【标题】"Spring AOP 实战指南" 在Java开发领域,Spring框架因其强大的功能和灵活性而备受推崇。其中,Spring AOP(Aspect Oriented Programming,面向切面编程)是其重要组成部分,它允许开发者在不修改原有代码的...

    spring-aop

    二、注解驱动的AOP 1. @Aspect:这是定义一个切面的注解,用于标记一个类为切面类。在这个类中,我们可以定义切点(Pointcut)、通知(Advice)等。 2. @Before、@After、@Around、@AfterReturning、@AfterThrowing...

    Spring AOP精讲

    ### Spring AOP精讲 #### AOP概念 在深入了解Spring AOP之前,首先需要了解一些基本的AOP概念。这些概念对于理解AOP的工作原理及其如何与Spring框架结合使用至关重要。 **1. 面向切面(Aspect)** 面向切面是指...

    spring6pdf详细讲解

    Spring 的 AOP 模块提供了多种方式来实现 AOP,包括基于 XML 配置和注解式开发。 Spring 的事务管理机制使得应用程序可以在数据库和其他资源中执行事务。 Spring 的事务管理机制提供了多种方式来管理事务,包括...

Global site tag (gtag.js) - Google Analytics