Spring 3.0 / AOP / Aspectj:autoproxy拦截任何对 getConnection() 的调用

2023-12-05

我试图拦截对 getConnection() 方法的任何调用来设置 dbms 标识符。我已经实现了一个方面来获取它,但我什么也没得到。任何想法?谢谢!

import java.sql.CallableStatement;
import java.sql.Connection;

import javax.servlet.http.HttpSession;

import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;

import es.iberia.tryp.model.entities.Usuario;

@Component
@Aspect
public class ConnectionAspect {

    @AfterReturning(value = "execution(java.sql.Connection javax.sql.DataSource+.getConnection(..))", returning = "connection")
    //@AfterReturning(value = "execution(java.sql.Connection org.springframework.jdbc.datasource.*.*(*))", returning = "connection")
    //@AfterReturning(value = "execution(java.sql.Connection java.sql.Connection *(..))", returning = "connection")
    //@AfterReturning(value = "execution(java.sql.Connection org.springframework.jdbc.datasource.DriverManagerDataSource.*(..))", returning = "connection")

    public void prepare (Connection connection) throws Throwable {

        HttpSession httpSession = (HttpSession) RequestContextHolder.currentRequestAttributes().resolveReference(RequestAttributes.REFERENCE_SESSION);

        if (httpSession!=null && (Usuario)httpSession.getAttribute("usuario")!=null && ((String)((Usuario)httpSession.getAttribute("usuario")).getNomina())!=null) {
            String nomina = (String)((Usuario)httpSession.getAttribute("usuario")).getNomina();
            String prepSql = "{ call DBMS_SESSION.SET_IDENTIFIER('" + nomina +"') }";
            CallableStatement cs = connection.prepareCall(prepSql);                             
            cs.execute();
            cs.close();         
        }
    }
} 

检查您的 xml 文件中是否添加了以下标记。

aop:aspectj-autoproxy

另请检查您是否已在该 ConnectionAspect 类的 xml 中添加了 bean 定义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring 3.0 / AOP / Aspectj:autoproxy拦截任何对 getConnection() 的调用 的相关文章

随机推荐

  • Python 子进程:将图像 blob 通过管道传输到 imagemagick shell 命令

    我内存中有一个图像 我希望执行convert使用Python的imagemagick方法subprocess 虽然这条线在使用 Ubuntu 终端时效果很好 cat image png convert new image jpg 这段代码无
  • 使用 C# Google Api FreeBase 数据转储解析

    我想搜索 google Api freebase 我想获得一般数据量 例如歌曲或电影的所有 ID 我下载了数据转储 gz 文件 我想知道解析文件并获取我需要的数据的最佳解决方案是什么 我正在使用 net c 有几个 NET 库可以读取 RD
  • 在 Windows 中使用批处理文件静默安装 numpy.exe

    我想创建一个批处理文件来帮助多个用户在 Windows 共享驱动器上安装 numpy 基本上 用户根本不必输入选项或执行任何操作 就像双击 numpy 可执行安装程序一样 Python 安装是已经存在 用户只需运行批处理文件并将 numpy
  • C++ - 从 /dev/urandom 中提取随机数

    我需要许多加密安全数字 所以我正在考虑从中提取随机性 dev urandom然后将其 转换 为 比如说 unsigned long long int 我想它应该非常有效 而且看起来它在密码学上是安全的 但我将来会更多地研究这方面 现在的问题
  • 在 Keras 上训练时,有什么方法可以调试张量内的值吗?

    我正在尝试使用 TensorFlow 后端在 Keras 上实现我自己的层 有没有办法在训练时打印张量内的值 例如我想打印x and self kernel在下面的代码中 class MyLayer Layer def init self
  • Swift 3 中非转义闭包的问题

    我有一个extension Array形式为 extension Array private func someFunction someClosure gt Int Do Something func someOtherFunction
  • 与 WhatsApp 共享包含 2000 至 3000 个印地语字符的文本

    我正在尝试分享一篇长度超过 3000 个字符的大文本 但是 我无法将所有文本发送到 WhatsApp 我的代码仅与 WhatsApp 共享大约 1000 个字符 这是代码 Intent whatsappIntent new Intent I
  • OpenGL:如何从源文件编译glew32.dll

    我从下载glew源文件http glew sourceforge net 在自述文件中 它说我应该使用 build vc6 0 glew dsw 来完成 DLL 但是我在VS 2010中打开后有四个项目 当我编译它们时 其中有2个无法编译
  • Mongodb (v2.4.0) $match 聚合不适用于日期范围

    我正在使用 mongodb java 驱动程序通过 maven 存储库 如下在 pom xml 中 来查询具有聚合框架的日期范围之间的事务 java驱动程序生成以下 match 我尝试在mongo控制台上验证它 发现它不起作用 db tra
  • 为什么 XDocument 无法从格式良好的 XML 文本中获取元素?

    我正在尝试获取的值Address以下 XML 文本中的元素 但除非我删除 否则找不到它xmlns http www foo com 来自Root元素 然而 即使使用它 XML 也是有效的 这里有什么问题 由于我从 Web 服务获取 XML
  • 如何在 cefsharp 中捕获/监听 javascript 函数或事件

    我正在尝试将 cefSharp 用于 WPF 应用程序 我可以找到 如何从 Net 调用 Javascript 方法 但是有没有一种方法可以让我收到 Net 中 Javascript 函数或事件的通知 例如如果有 Javascript 函数
  • 使用 :before 和 :after 元素填充文本元素的剩余空间[重复]

    这个问题在这里已经有答案了 我正在尝试创建一种效果 该效果本质上是一个标题标签 两侧有两条线填充容器的剩余宽度 我正在尝试创建它 以便无论标题文本的长度如何 您仍然可以获得相同的效果 间距量 这张图片更好地显示了我想要解释的内容 我得到的最
  • Django 中的 MVC 模式

    这个问题已经困扰我有一段时间了 我读过有关这个主题的内容 但似乎没有什么能澄清我的想法 我知道他们称为视图模板 也称为模型模型 我真正不明白的是控制器在哪里 在我看来 django 所谓的视图更像是控制器的操作 方法 功能 而不是控制器本身
  • 修复 msysGit Portable $HOME 位置

    我已在闪存驱动器上成功安装并配置了 msysGit Portable 并使用它来拉取和推送 GitHub 存储库 然而 我似乎总是不得不拼凑 SSH 支持 具体来说 为了让 SSH 找到我的密钥文件 我必须遵循这些说明启动第二个实例ssh
  • 如何在 PyQt5 中叠加小部件?

    我想在包含图像小部件的背景布局上渲染一些布局 将一些小部件分组 让我用一张图片来解释一下 下图显示了所需的输出 但是 我还没有找到覆盖两个图像小部件的方法 它们显示如下 这是我写的Python代码 from PyQt5 QtWidgets
  • 获取指向非静态成员函数的函数指针

    假设我有一堂课 class A public A void myFunc 然后在程序中的不同点我创建类 A 的实例 并尝试获取指向的函数指针myFunc A a new A ATTEMPTS AT RETRIVING FUNCTION PO
  • 无法使用 Fancybox 获取要通过 AJAX 发布的表单数据

    我使用 Fancybox 在单击链接时弹出联系表单 然后它将表单数据 POST 到 php 文件 发出一封电子邮件并返回一条成功消息 在我提交表单后 页面重新加载 数据似乎无处可去 如果我在不使用 AJAX 的情况下提交表单 它可以正常工作
  • 登录页面无法正常工作

    当我第一次打开登录页面时 即使我使用正确的用户名和密码 登录页面也不会重定向到主页 但在第二次登录时 它被正确重定向到主页 login php 的代码如下所示 login php 的其余部分是简单的 html 登录表单数据被发送到 vali
  • PHP:从文件中读取特定行

    我正在尝试使用 php ini 从文本文件中读取特定行 这是文本文件 foo foo2 如何使用php获取第二行的内容 这将返回第一行 但我需要第二个 任何帮助将不胜感激 myFile 4 24 11 txt lines file myFi
  • Spring 3.0 / AOP / Aspectj:autoproxy拦截任何对 getConnection() 的调用

    我试图拦截对 getConnection 方法的任何调用来设置 dbms 标识符 我已经实现了一个方面来获取它 但我什么也没得到 任何想法 谢谢 import java sql CallableStatement import java s