问题标签 [spring-aop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
728 浏览

java - Spring - 如何在声明式事务管理中的回滚期间收集信息

谁能告诉我在@Transactional 方法中捕获SQL 和其他异常是否安全并被推荐?当使用程序化事务管理时,我可以简单地捕获异常并做任何我想做的事情,但我不知道我是否不会通过捕获这些异常来破坏事务性 AOP 系统,否则这些异常会触发回滚......如果我以声明的方式进行。

我想有代理可以为 AOP 建议中的 @Transactional 方法创建一个具有单独连接的逻辑事务。他们需要捕获“我想捕获”的异常并将事务回滚。

0 投票
1 回答
2585 浏览

java - 如何在 Spring AOP 上获取 Web 会话

我有一个关于使用 Spring AspectJ 的问题。我想在用户执行某些操作并从 Web 会话中获取用户信息以创建审核日志时创建审核日志。谁能提供如何做到这一点的例子?

0 投票
3 回答
32887 浏览

java - spring 3.0 aop 切入点格式不正确:期待“名称模式”错误

以下是我的切入点和建议声明

我收到以下错误

我坚持这一点,任何指针

0 投票
1 回答
634 浏览

java - 自动装配 HibernateInterceptor 作为建议

我正在尝试使用 HibernateInterceptor 作为建议,并且正在尝试自动装配它。

代码如下,

以下是我的 XML 映射,

当我检查 hibernateInterceptop 时,我得到的只是 NULL :(...不知道为什么它无法自动连接休眠拦截器

有任何想法吗?谢谢你的时间。

干杯,J

0 投票
1 回答
1692 浏览

java - Spring aop事务未提交事务

我在 Apache Tomcat 6.0.29 上使用 Spring 3.0.3、MyBatis 3.0.2 和 mybatis-spring 1.0.0。

我使用 spring 的声明式事务进行事务管理。问题是这些交易对我不起作用。交易只工作一次,之后就没有了。

我试过检查我所有的配置,但没有任何线索。任何指针?

我的配置看起来像这样 -

评论后编辑 -------------

我启动服务器并执行一些事务功能,有时它可以工作,有时它不能。有时它会继续工作5-6次,然后突然停止。

TX 管理器和 DS 配置 -

0 投票
2 回答
19029 浏览

java - 如何使用 Spring AOP(AspectJ 样式)访问方法属性?

我需要通过使用注释作为切入点来引入一些方法及其属性,但是如何访问这些方法属性。我有以下代码可以在方法运行之前成功运行代码,但我只是不知道如何访问这些属性。

0 投票
1 回答
1754 浏览

aop - 方面扫描过多的类和方法缓存填充内存

在我们的应用程序中,我们有几个(实际上很多,大约 30 个)Web 服务。每个 Web 服务都驻留在自己的 WAR 文件中,并有自己的 Spring 上下文,该上下文在应用程序启动时被初始化。

我们还有许多注释驱动的方面类,我们将它们应用于 Web 服务类。一开始,切入点表达式看起来像这样:

并且通过配置条目在服务上启用了 AOP。

但是当网络服务的数量增加时,我们开始OutOfMemoryException在我们的服务器上体验 s。在进行了一些分析和分析之后,似乎内存被 AspectJExpressionPointcut 类的实例保存的缓存占用。

每个实例的缓存大约为 5 MB。由于我们有 3 个方面和 30 个服务,因此总共有 90 个实例持有 450MB 的数据。

在检查缓存的内容后,我们意识到它包含 WAR 中存在的所有类的 Java 反射方法实例,即使是那些不属于 my.package.service.business 包的类。将切入点表达式修改为具有附加within子句后:

内存使用再次下降到正常水平。并且所有 AspectJExpressionPointcut 实例总共占用不到 1MB。

有人可以解释这是为什么吗?为什么第一个切入点表达式还不够?AspectJExpressionPointcut为什么不共享缓存?

0 投票
3 回答
2351 浏览

java - Spring AOP 在 Tomcat 和 tcserver 中不起作用

当我从单元测试或通过独立应用程序运行它时,我有一个方面可以正常工作。但是,当我将它作为 Web 应用程序的一部分运行并将其托管在 Tomcat 上时,不会应用 Aspects。

我的方面看起来像

0 投票
1 回答
1362 浏览

spring - spring tx:annotation-driven 在tomcat中启用加载时间编织时忽略模式

我正在尝试使用注释配置事务。当我在启用了加载时间编织的环境中运行时(例如,tc 服务器或带有编织类加载器的 tomcat),我的事务拦截似乎由 aspectj 处理,但由于它没有完全配置它不起作用(我收到消息"Skipping transactional joinpoint [<method name>] because no transaction manager has been configured")。

我的配置状态<tx:annotation-driven mode="proxy" transaction-manager="transactionManager" />。无论如何,这些都应该是默认值,但我明确指定代理模式并获取 aspectj 模式。如果我切换到模式 aspectj 它可以工作,但是我们的生产环境没有启用 LTW,我更喜欢在任何地方使用模式代理。

知道发生了什么吗?我在 Spring 3.0.5 上,并且正在使用HibernateTransactionManager.

0 投票
3 回答
14765 浏览

java - Spring Java 配置上下文的事务配置

我已经为此苦苦挣扎了几个小时。

我正在尝试将我的 Spring XML 配置迁移到基于 Java 的完整配置。

AnnotationConfigApplicationContext用作上下文实现。

从我的旧 XML 配置中,我无法找到该行的 Java 等效项:

因此,Spring 不管理事务。

在我的 Java 配置中,我已经为事务初始化了相关的 bean:会话工厂、事务管理器等,但是如果没有该行,则不使用事务代理,因此实际上没有事务到位。

所以我的问题是如何将该行转换为我的 Java 上下文配置,或者如何以另一种方式解决问题。

任何帮助表示赞赏。谢谢。