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

Spring AOP 遇见的一个问题

阅读更多
java.lang.ClassCastException: $Proxy6
  出现了这个异常,我以为spring的版本不对,换了又换,结果还是不对,后来才知道是些测试类的时候写成这样的了:

   UserManagerImpl userImpl = (UserManagerImpl)factory.getBean("userManagerImpl");

其实一看看出来没有什么错误,后来知道$Proxy6是指没有实现接口,才恍然大悟。

  应该修改成:

   IUserManager userImpl = (IUserManager)factory.getBean("userManagerImpl");

我就简单列出我写的一些类吧:

这是核心实现切面的那个类:

@Aspect
public class CheckSecurityImp implements ICheckSecurity {

  //allAddMethod就像一个id,是一个切入点,执行add的所有方法(通配符)
  @Pointcut("execution(* add*(..))")
  private void allAddMethod(){}
 
  //在指定的符合的add方法的之前执行
  @After("allAddMethod()")
  public void checkSecurity() {
   System.out.println("实现全面的安全检查");
  }

}


对应的那个接口:

public interface ICheckSecurity {
public void checkSecurity();
}



那个spring的配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!--
  - Application context definition for JPetStore's business layer.
  - Contains bean references to the transaction manager and to the DAOs in
  - dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
  -->
<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"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
 <aop:aspectj-autoproxy />
 <bean id="userManagerImpl" class="com.spring.aop.UserManagerImpl"></bean>
 <bean id="checkSecurityImp" class="com.spring.aop.CheckSecurityImp"></bean>
</beans>

分享到:
评论

相关推荐

    Spring5_AOP.pdf

    AspectJ是一个独立的AOP框架,它提供了自己的语法,Spring可以与其集成来实现AOP功能。 使用AspectJ注解方式实现AOP操作时,首先需要在项目中引入AOP相关依赖。然后,可以通过定义一个增强类,并在该类上添加@...

    spring源码包.zip

    Spring框架是Java开发领域中的一个重要组成部分,它以其强大的功能和灵活的设计赢得了广泛的赞誉。本篇文章将深入探讨Spring的核心模块,包括`spring-context`、`spring-webmvc`、`spring-web`、`spring-beans`、`...

    spring约束dtd.zip

    6. `spring-util-4.0.xsd`:这是一个通用的DTD,提供了对类型安全的集合注入的支持,如`&lt;util:list&gt;`、`&lt;util:map&gt;`、`&lt;util:properties&gt;`等,方便了复杂配置的编写。 7. `spring-tool-4.0.xsd`:这个DTD主要服务于...

    spring+springmvc+mybatis+maven学生管理系统

    本项目“spring+springmvc+mybatis+maven学生管理系统”就是一个很好的学习实例,它展示了如何将这三个框架整合在一起,用于实现一个简单的学生信息管理系统。 1. **Spring框架**:Spring是Java应用的核心框架,...

    springmvc和mybatis整合.zip

    - **Spring** 是一个全面的Java企业级应用框架,提供依赖注入(Dependency Injection,DI)、面向切面编程(Aspect-Oriented Programming,AOP)等功能。 - `spring-web-4.1.3.RELEASE.jar` 支持Spring与Web应用的...

    狂神说最全笔记,含ssm及springboot MD格式笔记

    Spring Boot基于约定优于配置的原则,使得开发者可以快速启动一个包含各种功能的Web应用。它内置了Tomcat服务器,支持自动配置Spring组件,并且可以轻松集成其他流行框架,如Spring Data、Spring Security等。 ...

    SprigSpringMvcMybatisHelloWorld

    Spring 是一个开源的 Java 应用框架,它提供了一种依赖注入(Dependency Injection,DI)的方式,使开发者能够轻松地管理对象及其依赖关系。Spring 提供了 AOP(面向切面编程)支持,用于处理如日志、事务管理等通用...

    JAVA自学之路

    首先我要恭喜你,遇见问题,意味着你又有涨经验的机会了,每解决一个问题,你的JAVA经验值就应该上升几百点,问题遇到的越多,知识提升的越快。 但是总是解决不了也是很恼人的,怎么办呢? 我一般要求我们的...

    Meet:遇见

    "Meet:遇见"这个标题可能是指一个基于Java开发的项目或者应用,它旨在帮助人们建立联系,进行社交互动。虽然描述较为简洁,但我们可以通过Java的相关知识点来深入探讨。 1. **Java基础**: Java是由Sun Microsystems...

    网上购书系统

    总结来说,"网上购书系统"的开发涉及Java、JSP、MySQL以及一系列的框架技术,通过MVC设计模式和高效的开发工具,实现了一个功能完备、用户体验良好的在线购书平台。理解并掌握这些技术,对于提升Java Web开发能力...

Global site tag (gtag.js) - Google Analytics