springMVC中aop配置不起作用解决方法

SpringMVC:切面AOP 目前在实际AOP实用场景主要处理重复且频繁的操作,比如登录加密验证,接口调用日志处理,异常处理等方面。那我们今天就来看看切面AOP 阅读详情

     最近两天在学习spring的aop原理后,想在springMVC里练习一下,按照网上的配置写好了相应的aop类以及在xml做了相应设置。但是aop的设置一直不起作用。查看相关博客后找到了一种解决方法。
     在我的web环境中spring的ApplicationContext.xml的配置大致为:web容器启动时,扫描除controller之外的service,dao等其他的所有包。

<context:property-placeholder location="classpath:mybatis/db.properties"/>
<context:component-scan base-package="com.zkw">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

在springMVC的springMVC.xml的配置是:只扫描controller包。

<!-- 扫描controller包 -->
<context:component-scan base-package="com.zkw.controller" />

然后我想给一个controller类中的一个方法添加aop。具体为当在执行这个方法前执行一个函数,方法执行完毕后再执行另一个函数。所以先开始我是在ApplicationContext.xml文件中加入了如下配置:

<!-- aop相关 -->
<bean id="timetest" class="com.zkw.aop.monitor.TimeTest" />
    <aop:config>
        <aop:aspect id="timee" ref="timetest">
            <aop:pointcut id="analysis_test" expression="execution(* com.zkw.controller.framework.analysis.analysisController.weiboAnalysis(..))"/>
            <aop:before method="beforeAdvice" pointcut-ref="analysis_test" />
            <aop:after method="afterAdvice" pointcut-ref="analysis_test" />
        </aop:aspect>
    </aop:config>

增强类com.zkw.aop.monitor.TimeTest的代码如下:

public class TimeTest {
    public void beforeAdvice() {
        System.out.println("增强开始前");
    }

    public void afterAdvice() {
        System.out.println("增强结束后");
    }

}

就是在方法执行前打印一句话,方法完成后再打印一句话。而切点函数为weiboAnalysis(),也只是打印了一句话。
但是在我运行代码,从前台访问weiboAnalysis()函数的时候,并没有打印出织入的增强。后来参考http://blog.youkuaiyun.com/tianjun2012/article/details/47809739 博客后,将aop的配置放入了springMVC.xml中,就能正常完成增强的织入了。
后来我将ApplicationContext.xml的aop配置改了一下,切点改成了
<aop:pointcut id="analysis_test" expression="execution(* com.zkw.service.framework.analysis.TestService.*(..))"/> 即将切点设置成了ApplicationContext.xml文件扫描的service包中的一个方法,然后运行之后发现同样可以织入增强。
     总结:对需要织入增强的类或函数进行aop配置时,相应的aop配置需要写在那个扫描该类的配置文件中。对于本例来说,在ApplicationContext.xml中完成了除controller之外的service,dao等的配置,所以在ApplicationContext.xml文件中写入对controller的aop配置就不会起作用,相反springMVC.xml只完成了controller的配置,所以在springMVC.xml中写入对service的配置就不会起作用。 至于原因,暂时还没有搞清楚。

SpringMVC(五、AOP) AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理 实现程序功能的统一维护的一种技术。 XML 注解 阅读详情

相关推荐

springmvc配置AOP的两种方式

一、注解配置方式1.添加依赖:              &lt;dependency&gt;       &lt;groupId&gt;org.springframework&lt;/groupId&gt;       &lt;artifactId&gt;spring-aop&lt;/artifactId&gt;       &lt;version&gt;5.0.4.RELEASE&lt;/ve...

qq_37211608的博客 2881

Spring Aop失效的情況及解决办法

文章目录第一种(要增强的类或方法没被spring管理)第二种(要被增强的类或方法同时被spring和springMVC扫描)第三种(要增强的方法被同类的方法调用)第四种(用的注解方式没有开启注解支持)总结 第一种(要增强的类或方法没被spring管理) 对于传统的web项目来说,通常使用spring和springmvc,因此对于这种项目来讲,他是有两个容器的,一个是spring容器,一般我们会把Service层的东西注入到spring容器中,另一个是springmvc的容器,通常这个容器里注入的是Contr

weixin_43790613的博客 7319

springMVC Aspect AOP 接口耗时统计

在接口开发中,我们通常需要统计接口耗时,为后续接口性能做统计。在springMVC中可以用它的aop来记录日志。   1、在spring配置文件中开启AOP *************** 支持aop **************** --> aop:aspectj-autoproxy proxy-target-class="true" />   2、编写AOP packag

u010177899的博客 5001

SpringMVC代码配置AOP不起效的解决方案之一

一. 前言: 最近在学习Spring的AOP相关的内容,想通过工程试试看的时候,发现定义好的切面并没有被正确注入。 当然网上也有许多这方面的资料,也提供了相当多种的解决方案,我只是将我的这一种分享给大家。 这个解决方案的核心还是要将AOP的配置搬到SpringMVC的配置中,主要是针对完全使用Java代码来配置SpringMVC的人,XML配置的解决方案这里并没有讨论,但其实大同小异,有兴趣也可...

QinKuai的菜鸟博客 454

Materials Studio实战技巧(八)——利用片段库高效构建有机金属配合物

本文详细介绍了在Materials Studio中利用Fragment Browser(片段浏览器)高效构建有机金属配合物的实战技巧。通过调用预置的Metal Templates和Ligands库,用户可以快速搭建如茂金属催化剂等复杂分子骨架,并利用对称性操作精确控制Meso与Rac构型。文章还涵盖了自定义片段库的创建与使用,能显著提升建模效率,适用于计算化学与材料模拟领域的研究者。

wine的专栏 934

解决usbisp不识别无法烧录Atmega328P,Arduino不识别问题

如果使用Arduino IDE里面的烧录,可能会遇到一个问题,就是不识别国产这种廉价的USBISP 点击烧录引导程序,会遭遇到找不到USB设备的问题,选哪个都会提示找不到,比如选择USBasp could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp' 因此,我们需要使用到progisp这一个软件的1.72版本 选择好芯片的型号后,调用编译好的HEX文...

arenascat的博客 7436

AOP配置事务管理不生效

1、由于采用的是SpringMVC、MyBatis,故统一采用了注释来声明Service、Controller。由于服务器启动时的加载配置文件的顺序为web.xml---root-context.xml(Spring的配置文件)---servlet-context.xml(SpringMVC的配置文件),如果Controller在root-context.xml(Spring的配置文件)文件中扫描

L_D_Y_K的博客 900

用树莓派搭建全功能NAS服务器(01):树莓派基础操作&OMV搭建

写在前面 对于文件互传来说,局域网和云盘的操作总是独立的,而且很难将两者的优势合为一体。如果想要集多种优势为一体,那么NAS应该就是较为完美的解决方案了。 在这个系列中我们尽量跳过一些枯燥的理论知识,专注于说明两件事:   1.NAS是什么&能做什么 2.搭建思路&怎么做   这中间也会涉及到一些方案的选择,同类方案我也会列出来和大家分享我已知的优缺点,有兴趣可以多种尝试。(侧重于软件) 虽然是用树莓派搭建的,但是对于debian linux系统下的NAS搭建有着很好的参

斯塔克家的真维斯的工作间 2万+

Spring MVC中AOP无效、不起作用(配置问题)

最近做的一个项目需要由原来的单个数据改为多数据源方案,固想到了使用spring aop方式简化各模块使用数据源的切换功能,但论如何配置aop的bean都无法生效,无法切换数据源我的的配置1.引入aop所需的jar包(aopalliance-1.7.4.jar,aspectjweaver-1.7.4.jar)2.配置容器初始化时需要的XML文件beans xmlns="http://www.spri...

SYSGIS的专栏 4209

Windows+VSCode+Cline+MCP全流程配置指南

本文提供了一份详细的Windows+VSCode+Cline+MCP全流程配置指南,旨在帮助开发者打造高效的AI辅助编码工作站。文章从环境准备讲起,逐步指导安装VSCode、配置Cline插件、搭建Node.js环境,并重点详解如何通过MCP为Cline集成文件系统和GitHub等工具服务器,实现用自然语言操控开发环境,从而显著提升日常编码与文件管理效率。

weixin_28840143的博客 550

Altair HyperWorks 2022.3.0 Suite下载

Altair HyperWorks开发团队提供了新的一流技术,以设计和优化高性能、高效和创新的产品,并发布了HyperWorks 2021.2套件。与所有新版本一样,这个版本包含了新特性、增强功能,并修复了前一个版本中用户报告的各种问题,提供了总体上更稳定的体验。链接: https://pan.baidu.com/s/1rYietmQLQUboHiJzYoE9WQ?pwd=m9yh 提取码: m9yh 复制这段内容后打开百度网盘手机App,操作更方便哦。

weixin_48469365的博客 2125

spring aop未生效,无报错等任何 已解决

aop解决方案

yhl50333的博客 1026

相位编码脉冲压缩信号的理论研究与 Matlab 实现

通过实际的代码示例,我们展示了如何生成信号、进行相位编码、传输信号、相位解码和脉冲压缩的步骤。相位编码脉冲压缩信号是通过在发射端对信号进行相位编码,并在接收端对信号进行相位解码来实现的。其主要原理是在发射端将信号的频率进行调制,使得信号具有宽带特性,然后在接收端通过匹配滤波器对信号进行解调和压缩,从而提高信号的分辨率和抗干扰能力。相位编码脉冲压缩信号是一种在信号处理中常用的技术,用于提高信号的分辨率和抗干扰能力。可以使用 Matlab 中的信号生成函数生成一个宽带脉冲信号,例如矩形脉冲信号或高斯脉冲信号。

CyberWizarDD的博客 901

springMVC中aop配置不起作用的解决方法

    最近在学习spring的aop原理后,在springMVC里练习时按照网上的配置写好了相应的aop类以及在xml做了相应设置。但是aop的设置一直不起作用。查看相关博客后找到了一种解决方法。      在web环境中spring的ApplicationContext.xml的配置大致为:web容器启动时,扫描除controller之外的service、dao等其他的所有包。&lt;cont...

weixin_39214481的博客 2010

linux mmap系统调用

brk/mmap linux 提供了两个比较重要的系统调用brk 和mmap,用于向内核申请相应用户空间,内核会根据系统运行状态判定是否申请新的VMA来管理新申请的用户空间,brk和mmap在整个系统中都占有非常重要的地位。 brk()系统调用被gblic进行了进一步封装成malloc接口,用户层程序一般都是通过调用malloc,由glibc间接调用brk来向内核申请用户空间。brk申请的用户空间属于堆空间 mmap系统调用也可以向内核申请用户空间,不过与brk不同的师,mmap申请的空间属于mma.

weixin_42730667的博客 1275

毕设-MobileNetV4:给YOLOv8装上轻量化“引擎”——通用瓶颈与C2f融合的实战教程

本文介绍了一种将MobileNetV4与YOLOv8结合的目标检测模型轻量化方案。MobileNetV4通过通用瓶颈(UB)结构实现多任务适配,其核心改进包括动态卷积核、注意力机制和多路径特征聚合,显著提升特征提取能力。作者详细阐述了如何在YOLOv8框架中实现MobileNetV4的通用瓶颈模块,包括"膨胀-卷积-注意力-压缩"的流程设计,并构建完整的backbone网络。该方案通过融合MobileNetV4的轻量化优势与YOLOv8的高效检测架构,在移动设备上实现了精度与速度的良好平

FJN110的博客 503

Spring MVC controller 的AOP应用

在使用Spring MVC的时候,一般会有至少2个Spring的XML。一个用来配置一般的Spring的Bean(如:spring-ctx-application.xml),一个用来声明Spring Controller对于的view的内容(如:spring-mvc-servlet.xml)。 很多人发现在spring-ctx-application.xml里面声明AOP对Controller...

kanpiaoxue的专栏 163

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

有个@aspect配置在Java控制台下运行良好,tomcat下aop失败

经查资料发现要把 class="true"/>加到spring mvc的那个配置中,这个会优先加载。

lilovfly的专栏 949

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[Java][Spring]Spring事务不起作用 问题汇总

最近在项目的时候碰到pring事务不起作用的情况,后来解决了,这里我汇总下:   1、首先使用如下代码 确认你的bean 是代理对象吗? 必须是Spring定义(通过XML或注解定义都可以)的Bean才接受事务。 直接new出来的对象添加事务是不起作用的。 可以通过以下方式判断是否是代理对象: AopUtils.isAopProxy(Object obj

Edward_qing_Lee的专栏 985

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SpringMVC配置AOP

SpringMVC配置AOP

kerryqpw的博客 3940

SpringMVC中使用aop注解无效的问题

这两天学习Spring,用了SpringMVC的注解,然后配置事务和AOP,发现没用。和别的人讨论了下,大致得出了一个结论:这大约是Spring上下文的问题。 详细情况是这样的:项目引用了SpringMVC框架,在编写Controller以及Service的时候添加@Transactional的情况下和编写AspectJ的切面的情况下,事务和AOP都没有生效,而我的AOP配置是这

杨煜冬煜杨的博客 8981

Spring MVC中AOP无效、不起作用,解决方案之一

最近由于项目原因,在Spring+SpringMVC+Mybatis的环境中,增加对controller或是service的日志监控,在网上搜了半天,按照SpringAop的配置出不了结果,在按照网上的各种配置改……,各种头疼中,无意中看到摸个高手写的一段文字突然,感觉很有意思,就这样莫名其妙的解决了。回头看,我去,别人都写好了,我们配置都不会配置,悲哀…,这就是我对各种框架一知半解,甚至不知道的

tianjun2012的专栏 4万+

解决springMVC与Hibernate集成AOP事务不起作用的问题

我所要说的如题,在使用springMVC与Hibernate集成时,需要注意的点还是比较多的,其中AOP事务就是一个 如果配置不对,会使AOP事务无效。 在我们配置项目时,一般会把配置信息按内容分为多个文件, 比如专门配置spring的配置,一般会是如下名字:spring-servlet.xml 其中的内容: 这里是使用注解加载我们的bean,需要特

wzxtc2008的专栏 1608

Spring MVC中AOP无效、不起作用,解决方案之一 转载

Spring MVC中AOP无效、不起作用,解决方案之一 本文链接:https://blog.youkuaiyun.com/tianjun2012/article/details/47809739 最近由于项目原因,在Spring+SpringMVC+Mybatis的环境中,增加对controller或是service的日志监控,在网上搜了半天,按照SpringAop的配置出不了结果,在按照网上的各...

lifewinnerforever的博客 608

SpringMVC 如何配置aop

aop 面向切面的编程 Spring如何配置一个简单的aop 第一步:首先是编写一个Operator的类,(类的名字你随便起,开心最为重要) package com.wdg.operator; import org.apache.log4j.Logger; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.Proceed...

datouniao1的博客 1153

SpringMVC AOP无效不起作用解决方法

【场景描述】 为接口添加监控,配置<aop:aspectj-autoproxy expose-proxy="true">后代理不生效 【原因分析】 其中加载spring主配置文件的是applicationContext,加载springmvc的是webApplicationContext。 如果我们要切入Controller,需要在webmvc的配置文件里添加<aop:aspe...

Heqianqian的博客 1790
上一篇: springMVC中多个自定义拦截器方法的执行顺序
下一篇: <aop:pointcut>正则表达式规则
TYOUKAI_
博客等级 码龄9年 33粉丝 25原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值