0 0

AOP 通过XML方式实现 请问如何解决?15

问题是:只要我写上下列代码就会报错
<aop:before pointcut-ref="mycut" method="doAccessCheck"/>
        <aop:after-returning pointcut-ref="mycut" method="doAfterReturning"/>
  <aop:after-throwing pointcut-ref="mycut" method="AfterThrowing"/>
  <aop:after pointcut-ref="mycut" method="doAfter"/>
  <aop:around pointcut-ref="mycut" method="doBasicProfiling"/>


下面是源文件,请大家帮我看看哪出错了,谢谢!
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:context="http://www.springframework.org/schema/context"
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/context
        http://www.springframework.org/schema/context/spring-context-2.5.xsd
        http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
       
        <!-- 启动对@AspectJ注解的支持 -->
        <aop:aspectj-autoproxy/>
       
       
        <bean id="test" class="cn.yingtong.service.impl.PersonServiceBeanTest"/>
    <bean id="aspetbean" class="cn.yingtong.service.ServiceInterceptor"/>
       
    <aop:config>
       <aop:aspect id="asp" ref="aspetbean">
        <aop:pointcut id="mycut" expression="execution(* cn.yingtong.service.impl.PersonServiceBeanTest.*(..))"/>
        <aop:before pointcut-ref="mycut" method="doAccessCheck"/>
        <aop:after-returning pointcut-ref="mycut" method="doAfterReturning"/>
  <aop:after-throwing pointcut-ref="mycut" method="AfterThrowing"/>
  <aop:after pointcut-ref="mycut" method="doAfter"/>
  <aop:around pointcut-ref="mycut" method="doBasicProfiling"/>
        </aop:aspect>
        </aop:config>     

</beans>

PersonServiceBeanTest
public class PersonServiceBeanTest implements IService {

public void save(String name) {
System.out.println("我是save()方法");
// throw new RuntimeException("save()异常");
}

public String getPersonName(Integer personid) {
System.out.println("我是getPersonName()方法");
return "getPersonName";
}

}

ServiceInterceptor

public class ServiceInterceptor {


public void doAccessCheck(String name) {
System.out.println("前置通知:" + name);
}

public void doAfterReturning(String result) {
System.out.println("后置通知:" + result);
}

public void doAfter() {
System.out.println("最终通知");
}

public void AfterThrowing(Exception e) {
System.out.println("异常通知:" + e);
}

// 环绕通知
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {

System.out.println("进入方法");
Object result = pjp.proceed();
System.out.println("退出方法");

return result;
}

}

测试类

public static void main(String[] args) {

ApplicationContext cxt = new ClassPathXmlApplicationContext("beans.xml");
PersonServiceBeanTest personService = (PersonServiceBeanTest)cxt.getBean("test");
personService.getPersonName(1);

}












2012年7月13日 01:12
目前还没有答案

相关推荐

    注解方式实现AOP编程

    在Spring框架中,AOP的实现有两种主要方式:一种是基于XML配置,另一种是基于注解。本篇将主要讨论如何通过注解方式来实现AOP编程。 首先,我们需要了解Spring中的核心注解。`@Aspect`是定义一个切面的注解,通常会...

    springAop的配置实现

    Spring AOP通过XML配置文件提供了灵活的方式来定义和管理切面、切入点和通知,使得我们可以轻松地在应用程序中实现横切关注点的解耦。了解和掌握Spring AOP的配置实现,有助于提升我们构建松散耦合、易于维护的系统...

    使用XML方式配置AOP.zip

    XML配置是Spring早期版本中实现AOP的主要方式,虽然在现代版本中已经被注解式AOP所取代,但理解XML配置对于学习Spring的历史和原理仍然是必要的。 首先,我们需要创建一个Spring配置文件,通常命名为`...

    AOP及其Java实现机制.doc

    - **声明式AOP**:AspectJ通过注解或XML配置文件来声明哪些方法需要添加什么样的横切关注点,简化了AOP的实现过程。 - **程序式AOP**:对于更复杂的场景,AspectJ还提供了编程接口,允许开发者直接编写Java代码来...

    spring基于AOP实现事务

    总结一下,Spring基于AOP实现的事务管理通过TransactionProxyFactoryBean,结合声明式事务配置,能够提供一种高效且易于维护的事务解决方案。它允许我们在不修改业务逻辑的情况下,统一管理和控制事务,提升了代码的...

    springboot+mybat(多数据源) 通过aop实现分库的操作 ,通过传入的动态表明实现分表查询

    总结起来,通过SpringBoot的AOP和MyBatis的多数据源配置,我们可以实现灵活的数据库分库分表查询。这种方式不仅可以降低系统复杂度,提高性能,还使得代码更加模块化,便于维护。在处理大数据量和高并发场景时,这样...

    Spring的AOP实例(XML+@AspectJ双版本解析+源码+类库)

    通过以上讨论,我们不仅理解了Spring AOP的基本概念,还掌握了XML和@AspectJ两种实现方式的细节。结合提供的源码,可以进一步深入到Spring AOP的内部运作,提升我们的编程技能和问题解决能力。在实际工作中,选择...

    AOP的实现机制.pdf

    Spring AOP是Java环境中最广泛使用的AOP实现,它支持基于注解和XML配置的切面定义。通过`@Aspect`注解,我们可以创建切面类,使用`@Before`, `@After`, `@Around`等注解定义通知,并使用`@Pointcut`定义切入点。 ...

    AOP__使用JDK中的Proxy技术实现AOP功能

    在这种情况下,可以考虑使用更强大的AOP框架,如Spring AOP,它提供了基于注解和XML配置的更全面的AOP解决方案。 总结来说,JDK的动态代理提供了一种轻量级的AOP实现方式,尤其适用于接口驱动的设计。通过理解其...

    springAOP的三种实现方式示例代码

    下面我们将通过三个示例代码,展示 Spring AOP 的三种实现方式。 纯 XML 方式 在纯 XML 方式中,我们需要在 Spring 配置文件中配置 AOP 相关的信息,例如,需要引入的 jar 包、Aspect 的定义、Pointcut 的定义等。...

    AOP的相关概念

    对于案例中的问题——重复的事务控制代码,可以使用AOP技术通过动态代理的方式解决: - **思路**:创建代理对象,在执行业务逻辑时增加事务支持。 - **实现步骤**:选择合适的代理机制,比如JDK动态代理或CGLib。 #...

    Spring中的AOP不生效

    在Spring框架中,AOP可以通过基于XML的配置或者基于注解的方式实现。但在实际开发过程中,可能会遇到配置好的AOP切面不生效的问题,本文将针对这一现象进行深入分析,并提供相应的解决方案。 #### 一、问题定位 当...

    代理机制及AOP原理实现

    在实际应用中,我们可以通过配置XML或使用注解的方式来定义切面。例如,我们可以定义一个切面类,其中包含一个切入点表达式和通知方法,然后在Spring容器中注册这个切面,Spring就会在匹配的Join Point上插入我们的...

    Spring.net(AOP通过配置文件配置)

    总之,Spring.NET 的 AOP 功能通过配置文件提供了一种灵活的方式来管理和组织横切关注点,提高了代码的可读性和可维护性。理解和熟练使用这一特性,对于提升 .NET 应用程序的质量和可扩展性至关重要。

    spring aop切面拦截指定类和方法实现流程日志跟踪

    为了解决这一问题,可以利用Spring框架中的AOP(Aspect Oriented Programming,面向切面编程)技术来实现。 #### 二、Spring AOP 概述 Spring AOP 是Spring框架提供的一种实现AOP的方法。通过AOP,开发者可以在不...

    Spring AOP+ehCache简单缓存系统解决方案

    AOP通过定义切面(Aspect)和通知(Advice)来实现这一目标,切面定义了关注点的结构,而通知则定义了在何处以及如何应用这些关注点。 ehCache是一个开源的Java分布式缓存系统,它可以极大地提高应用程序的性能,...

    基于XML/注解的AOP模拟银行账户

    实验主题涉及Spring AOP(面向切面编程)的两种实现方式——基于XML配置和基于注解的编程,用于模拟银行账户的存钱和取钱操作。AOP的主要目的是分离关注点,将业务逻辑与横切关注点(如日志、事务管理等)解耦。 一...

    springAOP中文文档

    ### Spring AOP 概念与实践 #### 一、AOP 概述 ...Spring AOP 提供了灵活的机制来实现这一目标,无论是通过 AspectJ 注解还是 XML 配置,开发者都可以根据项目的需求选择最适合的方式来实现 AOP。

    aop示例spring 的aop思想解决项目中多次出现的同一个问题

    在Spring中实现AOP主要有两种方式: 1. **基于注解的AOP**:通过在目标类的方法上使用特定的注解(如`@Before`, `@After`, `@Around`等)来声明通知。例如,我们可以使用`@Transactional`注解来声明一个方法需要进行...

Global site tag (gtag.js) - Google Analytics