AOP无法切入同类调用方法解决办法

问题:当AOP切入一个类的所有方法时,该类中的方法互相调用则只会增强最外层方法,被调用的方法不会增强

解决办法如下:

1.spring版本或较老的spring boot版本

解决方法是在applicationContext.xml中添加一段<aop:aspectj-autoproxy proxy-target-class="true"expose-proxy="true"/>

<?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:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

    <aop:aspectj-autoproxy proxy-target-class="true" expose-proxy="true"/>

</beans>

2.spring boot 版本

在ApplicationMain启动类加入@EnableAspectJAutoProxy(proxyTargetClass=true,exposeProxy=true)

原文地址:https://www.cnblogs.com/lzj123/p/11542539.html

时间: 2024-07-31 15:47:14

AOP无法切入同类调用方法解决办法的相关文章

启用了不安全的HTTP方法解决办法 IBM APPSCAN

启用了不安全的HTTP方法解决办法  IBM APPSCAN 安全风险: 可能会在Web 服务器上上载.修改或删除Web 页面.脚本和文件. 可能原因: Web 服务器或应用程序服务器是以不安全的方式配置的. 修订建议: 如果服务器不需要支持WebDAV,请务必禁用它,或禁止不必要的HTTP 方法. 方法简介: 除标准的GET和POST方法外,HTTP请求还使用其他各种方法.许多这类方法主要用于完成不常见与特殊的任务.如果低权限用户可以访问这些方法,他们就能够以此向应用程序实施有效攻击.以下是一

spring aop 动态代理批量调用方法实例

今天项目经理发下任务,需要测试 20 个接口,看看推送和接收数据是否正常.因为对接传输的数据是 xml 格式的字符串,所以我拿现成的数据,先生成推送过去的数据并存储到文本,以便验证数据是否正确,这时候要批量调用这些同名方法,我觉得这里可以发展成有潜力的代码. 推送比较好做数据,队友们都写好代码,但是有个问题,方法要的值都大致相同,封装的方式不一致,多人开发,有的封装对象里面,有的直接使用 Map.get(),唉,一千个人一千个哈姆雷特嘛,只好利用反射和动态代理节省自己的代码量,而且这种方式练练手

jframe 对象(GroupedAction)传递无法调用对象的方法解决办法

Display.getDefault().syncExec(new Runnable() { public void run() { pmtsStreamViewsAction.refreshPerspective( viewId, w); } });

spring中aop不生效的几种解决办法

先看下这个问题的背景:假设有一个spring应用,开发人员希望自定义一个注解@Log,可以加到指定的方法上,实现自动记录日志(入参.出参.响应耗时这些) package com.cnblogs.yjmyzz.springbootdemo.aspect; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy

jquery 中的对象,在ajax 回传后,不能正常调用的解决办法

就是将对象存入变量再调用就可以了! 1 $(document).ready(function(){ 2 $(".driverinfo").each(function(index){ 3 4 var html = ''; 5 var object = $(this); 6 $.ajax({ 7 type: 'post', 8 url: '', 9 data: {"vid":$(this).text()}, 10 success: function(data) { 11

相同类中方法间调用时日志Aop失效处理

本篇分享的内容是在相同类中方法间调用时Aop失效处理方案,该问题我看有很多文章描述了,不过大多是从事务角度分享的,本篇打算从日志aop方面分享(当然都是aop,失效和处理方案都是一样),以下都是基于springboot演示: 快速定义个日志Appender 快速定义个拦截器和日志注解(aop) 模拟相同类中方法间调用时aop失效 Aop失效处理方案(就两种足够了) 快速定义个日志Appender 日志我还是喜欢log4j,大部分朋友也同样吧,这里lombok与log4j结合来完成我们的日志,如下

Android内存泄漏的本质原因、解决办法、操作实例

今年最后一个迭代终于结束了,把过程中碰到的不熟悉的东西拉出来学习总结一下 内存泄漏的本质是:[一个(巨大的)短生命周期对象的引用被一个长生命周期(异步生命周期)的对象持有] 这个东西分为两个部分 获得一个(巨大的)短生命周期的对象 这个[巨大的短生命周期的对象]在Android中最有可能的就是[Activity]了 最容易无意识获得它的方式就是[非静态内部类隐式自动持有外部类的强引用] 把这个对象赋值给了一个长生命周期的对象 这个有一些常见的套路 套路一:直接赋值给了一个类的静态成员 这个静态成

Spring AOP +EHcache为Service层方法增加缓存

在铁科院做了一个关于医保报销的项目,在这个个系统中大量使用了下拉列表框,系统主要是给机关单位使用而且都是一些干部退休了啥的,年龄都比较大不愿意自己输入东西,因此界面上的很多值都是下拉列表框从数据字典表里面加载出来. 如此以来字典表的数据量变的越来越大,在一个界面上往往需要频繁的与字典表交互,觉的很影响性能于是我们增加了缓存,即为service层中的指定方法缓存功能,具体实现是利用Spring AOP+EHcache来做. 第一次执行某个方法的时候会去数据库里面查询,当第二次执行该方法时就会去从缓

几个开发中遇到的问题及解决办法

1 StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1解决办法:将请求中的localhost 改为实际的IP2 HttpClient 无法调用PostAsJsonAsync()方法 解决办法:添加System.Net.Http.Formatting的依赖引用 3:ASP.NET CORE webapi客户端访问Controller时找不到对象的方法,报出错误:AmbiguousActionException: Multiple act