`
usherlight
  • 浏览: 31306 次
文章分类
社区版块
存档分类
最新评论

正确配置spring aop,在controller中使用AOP

阅读更多
在controller中使用AOP的问题主要在于如何让controller能够被检测到。
controller和其他spring bean的区别在于:controller是由mvc定义并在web.xml中的dispatcher中定义的。

解决方法:
1、正确定义controller,(比较通用的做法,没有特殊情况的话,大部分应用没有这个问题)
    a. 将服务层的类都放在ApplicationCotext-*.xml中定义,在context listener中初始化(注意,任何controller都不应该在这里出现),要包括<aop:aspectj-autoproxy/>, 在这里,有没有proxy-target-class="true" 没有关系(具体含义参看下文)
    b. 定义mvc的配置文件,一般是 <<servlet name>>-servlet.xml,一般(也是推荐做法)使用auto scan来定义所有的controller.关键步骤来了:这个文件也要加入<aop:aspectj-autoproxy proxy-target-class="true"/>, 一定要添加proxy-target-class="true"! 这是用于通知spring使用cglib而不是jdk的来生成代理方法。
    c. 另外一个事项,controller需要使用@controller注释,而不是继承abstract controller。
    d. 建议使用aspectj来完成aop



分享到:
评论
6 楼 sunyunjie361 2016-06-21  
   折腾了半天,看了帖子一下解决了,多谢
5 楼 chendejia2012 2016-02-05  
必须赞一个,折腾了一天,看到该帖子,问题迎刃而解。
4 楼 yangbo215501 2014-11-11  
必须赞一个,短短几行字,道出了spring-aop的真谛!!!!
3 楼 aopha 2013-10-29  

最近在配Simple-Spring-Memcached,@Test都没有问题,一部署到tomcat就不行,查了很久,原来是这个原因。谢谢
2 楼 aye_love 2012-06-05  
spring3.1 mvc+mybatis的事物也不起作用 LZ有什么好的解决办法吗
1 楼 java_adult 2012-01-04  
请问你QQ?我配置了controller,aop还是不起做用,在网上查的,说是controller不支持aop,能加QQ聊下吗?我的是66300211,

相关推荐

    springaop拦截controller日志

    "springaop拦截controller日志"这个主题旨在讲解如何使用Spring AOP来拦截Controller层的方法调用,并在方法执行前后记录相关日志。 首先,了解Spring AOP的基本概念。AOP是一种编程范式,它允许程序员定义“切面”...

    Spring Mvc AOP通过注解方式拦截controller等实现日志管理

    在Spring中,我们通常使用基于注解的AOP,它简化了配置并使代码更易读。 二、注解驱动的AOP 1. 定义切面(Aspect):首先,我们需要创建一个切面类,这个类通常包含通知(Advice),也就是实际的日志记录方法。使用...

    Spring AOP 在WEB中的使用

    3. **配置AOP**:在Spring配置文件中启用AOP,通过`&lt;aop:config&gt;`或在Java配置类中使用`@EnableAspectJAutoProxy`注解。 4. **使用代理**:Spring会为切面涉及的对象创建代理,当调用这些对象的方法时,实际上是...

    spring MVC AOP注解方式如何拦截controller 例子

    本文将详细介绍如何使用AspectJ注解在Spring MVC中实现AOP拦截Controller方法,并提供一个具体的例子。 首先,我们需要了解Spring AOP的基础概念。AOP允许我们定义“切面”,这些切面包含了业务逻辑中横切关注点的...

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

    在Spring配置文件中定义切面和切入点表达式是非常关键的一步。一般来说,我们会使用通配符来匹配多个类和方法,但在某些情况下,可能需要精确地指定要拦截的类和方法。 ```xml &lt;!-- Spring.xml 配置文件 --&gt; &lt;aop:...

    Spring 2.5 AOP 例子

    无需在XML配置文件中显式声明每一个bean,只需指定基础包名,Spring会自动搜索包及其子包下的所有@Component、@Service、@Repository和@Controller注解标记的类,并将它们注册为bean。这一功能大大简化了配置,提高...

    SpringMVC+springAOP+spring security+Hibernate整合实例代码

    Spring MVC、Spring AOP、Spring Security和Hibernate是Java开发中常用的四大框架,它们各自负责不同的领域,但在实际项目中往往需要进行整合以实现更高效、更安全的开发。本实例代码提供了一个完整的整合示例,涵盖...

    springboot spring aop 拦截器注解方式实现脱敏

    在Spring AOP中,我们可以定义一个`@Aspect`类,这个类包含若干个`@Before`,`@After`,`@Around`等注解的方法,这些方法会在相应的切点(pointcut)执行前、后或周围执行。在数据脱敏的场景下,我们可能需要在响应...

    springMVC AOP拦截拦截Controller等实现日志管理

    通过这种方式,我们可以在Spring MVC中利用AOP实现对Controller方法的透明日志管理,不仅记录正常流程,也能捕获和记录异常,提升系统的可维护性和问题排查效率。 在实际项目中,我们可以根据需求进一步定制日志...

    spring aop日志拦截

    在Spring MVC框架中,AOP(面向切面编程)是一种强大的工具,用于实现日志拦截,特别是对于controller层的操作。AOP允许我们定义横切关注点,这些关注点可以是如日志记录、事务管理、权限检查等通用功能,它们在程序...

    Spring AOP实例

    在Spring AOP中,这些关注点被封装为独立的模块,称为切面(Aspect)。 本实例主要涵盖了以下几个关键知识点: 1. **切面(Aspect)**:切面是Spring AOP的核心,它将关注点(如日志、事务)与业务逻辑分离。一个...

    struts2+spring aop demo

    4. **连接Struts2和Spring**:在Struts2的配置文件(如`struts.xml`)中,我们需要配置Action类以使用Spring的依赖注入,这样Spring才能识别并应用AOP代理。 在实际的项目中,我们还需要考虑如何处理自定义参数。...

    SpringAOP日志管理

    采用SpringAOP拦截Controller,Service实现操作日志管理,统一处理异常,登陆日志管理,是SpringAOP的应用实践。通过SpringAOP的处理,可以方便移植日志管理功能,是个不错的学习demo

    spring AOP 切面日志 分层打日志

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许我们在不修改源代码的情况下,对程序进行横向关注点的插入,比如日志记录、事务管理、权限检查等。在这里,我们重点关注如何利用Spring AOP实现分层...

    Spring aop.docx

    通过以上内容,你将能够了解Spring AOP的基础知识,如何在Spring Boot项目中使用AOP进行日志记录,并逐步掌握面向切面编程的精髓。继续深入学习,你将能够熟练运用Spring AOP解决实际问题,提升代码质量和可维护性。

    swagger和spring Aop日志结合

    1. 引入依赖:在项目中添加Swagger和Spring AOP的相关依赖,如`springfox-swagger2`和`springfox-swagger-ui`,以及Spring AOP和日志库(如Logback或Log4j)。 2. 配置Swagger:创建一个配置类,启用Swagger并配置...

    44 Spring控制器Controller如何设置AOP?慕课专栏1

    **将Controller移到`DispatcherServlet`的配置文件**:将Controller的定义从全局的`applicationContext.xml`移动到`spring-dispatcher-servlet.xml`,这样Controller就会在`DispatcherServlet`的...

    Spring MVC AOP通过注解方式拦截Controller等实现日志管理demo版本2

    在Spring AOP中,可以使用注解来定义切面、通知(advisors)和切入点(pointcuts)。这样就不需要编写XML配置文件,简化了配置过程,提高了代码的可读性。 3. **@Aspect注解** `@Aspect`注解用于声明一个类为切面...

    对spring aop 各个组件进行实现

    自定义注解是Spring AOP中实现切面逻辑的一种方式。例如,我们可以创建一个名为`@LogExecutionTime`的注解,用来记录方法的执行时间。首先,定义注解: ```java @Retention(RetentionPolicy.RUNTIME) @Target...

    spring aop 拦截日志示例

    在Java配置类中,使用`@EnableAspectJAutoProxy`开启AOP,并使用`@Component`注解切面类。 6. **存储日志到数据库**: 在记录日志时,我们可以使用JDBC或ORM框架(如Hibernate、MyBatis)将日志信息保存到数据库。...

Global site tag (gtag.js) - Google Analytics