Spring AOP基于XML配置文件的管理方式

1、配置Bean

<!-- 定义一个普通Bean实例,该Bean实例将被作为Aspect Bean -->
<bean id="fourAdviceBean" class="org.crazyit.app.aspect.FourAdviceTest"/>
<!-- 再定义一个普通Bean实例,该Bean实例将被作为Aspect Bean -->
<bean id="secondAdviceBean" class="org.crazyit.app.aspect.SecondAdviceTest"/>
<bean id="hello" class="org.crazyit.app.service.impl.HelloImpl"/>
<bean id="world" class="org.crazyit.app.service.impl.WorldImpl"/>

2、配置AOP
<aop:config>
<!-- 将fourAdviceBean转换成切面Bean切面Bean的新名称为:fourAdviceAspect指定该切面的优先级为2 -->
<aop:aspect id="fourAdviceAspect" ref="fourAdviceBean" order="2">
<!-- 定义一个After增强处理,直接指定切入点表达式,以切面Bean中的release()方法作为增强处理方法 -->
<aop:after pointcut="execution(* org.crazyit.app.service.impl.*.*(..))"  method="release"/>
<!-- 定义一个Before增强处理, 直接指定切入点表达式 以切面Bean中的authority()方法作为增强处理方法 -->
<aop:before pointcut="execution(* org.crazyit.app.service.impl.*.*(..))"  method="authority"/>
<!-- 定义一个AfterReturning增强处理, 直接指定切入点表达式 以切面Bean中的log()方法作为增强处理方法 -->
<aop:after-returning pointcut="execution(* org.crazyit.app.service.impl.*.*(..))"  method="log" returning="rvt"/>
<!-- 定义一个Around增强处理,直接指定切入点表达式 以切面Bean中的processTx()方法作为增强处理方法 -->
<aop:around pointcut="execution(* org.crazyit.app.service.impl.*.*(..))"  method="processTx"/>
</aop:aspect>

<!-- 将secondAdviceBean转换成切面Bean 切面Bean的新名称为:secondAdviceAspect 指定该切面的优先级为1,该切面里的增强处理将被优先织入 -->
<aop:aspect id="secondAdviceAspect" ref="secondAdviceBean" order="1">
<!-- 定义一个Before增强处理,该参数必须为String类型(由authority方法声明中msg参数的类型决定) -->
<aop:before pointcut= "execution(* org.crazyit.app.service.impl.*.*(..)) and args(aa)"  method="authority"/>
</aop:aspect>
</aop:config>

3、另:

  <aop:pointcut.../>元素可以用来定义切入点,<aop:pointcut id="xxx_id" expression="execution(* org.crazyit.app.service.impl.*.*(..))" />

  若作为作为<aop:aspect.../>子元素则只对该切面有效

  <aop:config.../>的子元素,可以被多个切面通过共享,则

  <aop:after pointcut="execution(* org.crazyit.app.service.impl.*.*(..))"  method="release"/>

  可改为:

  <aop:after pointcut-ref="xxx_id"  method="release"/>

时间: 2024-10-06 18:00:34

Spring AOP基于XML配置文件的管理方式的相关文章

Spring AOP基于注解的“零配置”方式

Spring AOP基于注解的“零配置”方式: Spring的beans.xml中 <!-- 指定自动搜索Bean组件.自动搜索切面类 --> <context:component-scan base-package="org.crazyit.app.service,org.crazyit.app.aspect"> <context:include-filter type="annotation" expression="or

Spring AOP基于注解的“零配置”方式实现

为了在Spring中启动@AspectJ支持,需要在类加载路径下新增两个AspectJ库:aspectjweaver.jar和aspectjrt.jar.除此之外,Spring AOP还需要依赖一个aopalliance.jar包 定义一个类似ServiceAspect.java这样的切面bean: 1 package com.hyq.aop; 2 3 import org.apache.commons.logging.Log; 4 import org.apache.commons.loggi

Spring AOP基于注解的“零配置”方式---org.springframework.beans.factory.BeanNotOfRequiredTypeException

具体异常信息如下: 1 Exception in thread "main" org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'hello' must be of type [com.hyq.chapter08_04_3.HelloImpl], but was actually of type [com.sun.proxy.$Proxy13] 2 at org.springfram

Spring AOP基于xml配置实例

目录层级: AOP相关的几个类就是com.aop.xmltype这个报下的4个类. ICalculatorxml.java package com.aop.xmltype; /** * 加减乘除接口,用于AOP测试 * * @author Wei * */ public interface ICalculatorxml { /** * 加法 * * @param a * @param b * @return a+b */ public int doAdd(int a, int b); /** *

(一)Spring AOP:基于XML配置文件

Spring两大重要特性之一就是面向切面编程,下面的例子就是基于XML配置文件最简单的Spring AOP,AOP中的一些术语我就不说了,还是直接操作来的直观 一.maven依赖 <!--spring--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>3.1.2.RE

Spring基于声明的事务管理方式

基于注解的事务管理方式虽然使事务的管理变得很容易但是你还是需要把所有业务层的实现类都用@Transactional注解标记,那么有没有一种更为简单的一劳永逸的方法管理事务呢? 基于声明的事务管理只需要少许的配置即可为所有业务层逻辑添加事务管理,在SpringMVC+Hibernate4+Bootstrap3基础上去除UserServiceImpl.java的@Transactional注解并修改applicationContext.xml为如下: <?xml version="1.0&qu

Spring 框架的概述以及Spring中基于XML的IOC配置

Spring 框架的概述以及Spring中基于XML的IOC配置 一.简介 Spring的两大核心:IOC(DI)与AOP,IOC是反转控制,DI依赖注入 特点:轻量级.依赖注入.面向切面编程.容器.框架.一站式 优势: 方便解耦:做到编译期不依赖,运行期才依赖 AOP的支持 声明式事务的支持 方便程序的测试 方便整合各种框架 降低JavaEE API的使用难度 Spring源码很厉害 解耦: 耦合包括:类之间的和方法之间的 解决的思路: 在创建对象的时候用反射来创建,而不是new 读取配置文件

Springmvc基础框架搭建流程(1)-基于xml配置文件

该篇文章对SpringMVC的基本使用过程做简单介绍,这里基于xml配置文件进行配置的.使用的工程为简单的系统登录过程. 1.eclipse下创建web工程,名称为SpringLogin,根目录修改为WebRoot(这样的Web工程可以在myeclipse下正常运行),该工程实现登录功能: 2.在lib中添加springmvc所需的jar包,这里使用的是3.2.9版本的jar包: 3.在src下创建2个包com.by.controller.com.by.service.com.by.manage

Spring中加载xml配置文件的六种方式

因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件的形式装入系统,这就需要利用Spring去动态加载某一位置下的配置文件,所以就总结了下Spring中加载xml配置文件的方式,我总结的有6种, xml是最常见的spring 应用系统配置源.Spring中的几种容器都支持使用xml装配bean,包括: XmlBeanFactory,ClassPathXmlApplicationContext,FileSystemXmlApplicationContext,XmlWebApplicati