0

我正在使用连接准备器的弹簧配置,我需要为获得的每个连接设置客户端标识符,并且可以在数据库策略中使用。在这里,当多个请求并行出现时,我遇到了一个问题,由于用户名传递给我正在使用的连接准备器,它变得一团糟。

我使用弹簧罐完全按照下面给出的弹簧链接。

http://static.springsource.org/spring-data/jdbc/docs/current/reference/html/orcl.connection.html 我正在做的另一件事是在我的客户端标识符类中有一个变量用户名并有一个setter 和 getter 方法,并将其作为存储过程的参数调用。

我的问题是当存在并行事务时,注入的客户端标识符单例 bean 具有我已传递的用户名的旧副本。

是否有任何其他更好的选择来设置动态方法以将用户名从请求传递给该 bean,并且在检索 bean 时它应该返回正确的值。

任何帮助表示赞赏。

4

1 回答 1

0
  1. 使用 ThreadLocal 变量创建实用程序(静态变量/方法)类。提供getter和setter。
  2. 创建一个从请求中获取用户的过滤器。将此用户设置为上面创建的线程本地。
  3. 随时随地调用 getter(例如,在您引用的链接中调用可调用语句之前构建“prepSql”时)。
于 2013-11-26T22:34:12.960 回答