问题标签 [aspectj]

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 投票
1 回答
1001 浏览

eclipse - 在 Eclipse 中升级 AspectJ 运行时库

我正在尝试升级到比 Eclipse 附带的更新版本的 aspectjrt。我更新了 maven pom.xml 中的版本号。Eclipse 似乎没有选择它,它仍然在其类路径上显示内置版本。

m2eclipse 使用哪个版本的库?

0 投票
4 回答
16818 浏览

java - Spring Optimistic Locking:如何重试事务方法直到提交成功

我将 Spring 2.5 和 Hibernate JPA 实现与 Java 和“容器”托管事务一起使用。

ConcurrencyFailureException我有一个“用户提交后”方法,可以在后台更新数据,无论是否有异常都需要提交StaleObjectStateException,因为它永远不会显示给客户端。换句话说,需要把乐观锁变成悲观。(如果方法执行需要更长的时间并且有人在其他事务中更改了数据,则可能会发生)


我读了很多关于幂等的东西,如果在搜索 DEFAULT_MAX_RETRIES6.2.7 时出现异常,请重试。示例第 14.5 章。重试。我还在这里这里的 stackoverflow 中找到了。

我试过这个:

RetryOnConcurrencyException是我的注释,用于标记发生异常时需要重试的方法。没用...我也尝试了几种方法SELECT ... FOR UPDATE,例如EntityManager.lock(...)

使用 Spring 避免过时数据、脏读等策略的最佳方法是什么?重试?,同步?,JPA 锁定?,隔离?,选择...进行更新?我无法让它工作,我对任何帮助感到非常高兴。


这是我喜欢做的一些伪代码:

在 // XXX 和 // YYY 之间,另一个会话可以修改项目,然后抛出 StaleObjectStateException。

0 投票
2 回答
170 浏览

maven-2 - 在 maven 中加入 -xmlConfigured

maven-aspectj-plugin 是否有一个选项来指定ajc 的选项-xmlConfigured?

如果没有,使用 maven 使用最新版本的 ajc 编译方面代码的常见做法是什么?

0 投票
1 回答
357 浏览

java - 尽管我也添加了 aspectjrt.jar,但使用 spring aop 切入点出现错误

无法解决此问题错误:

java.lang.IllegalStateException:ContainerBase.addChild:开始:org.apache.catalina.LifecycleException:javax.xml.parsers.FactoryConfigurationError:在org.apache.catalina.core.ContainerBase中找不到提供程序org.apache.xerces.jaxp.SAXParserFactoryImpl .addChildInternal(ContainerBase.java:932) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:912) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:694) 在 com。 sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1933) 在 com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1605) 在 com.sun.enterprise.web.WebApplication.start(WebApplication. java:90) 在 org.glassfish.internal.data.EngineRef.start(EngineRef.java:126) 在 org.glassfish.internal.data。ModuleInfo.start(ModuleInfo.java:241) at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:236) at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:339)在 com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183) 在 org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272) 在 com.sun.enterprise.v3.admin .CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320) at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl. java:1176) 在 com.sun.enterprise.v3.admin.CommandRunnerImpl.access $900(CommandRunnerImpl.java:83) 在 com.sun.enterprise.v3.admin。CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235) at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224) at com.sun.enterprise.v3.admin.AdminAdapter.doCommand( AdminAdapter.java:365) 在 com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204) 在 com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166) 在 com .sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100) 在 com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245) 在 com.sun.grizzly.http .ProcessorTask.invokeAdapter(ProcessorTask.java:791) 在 com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) 在 com.sun.grizzly.http.ProcessorTask。在 com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) 在 com.sun.grizzly 的 com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) 的进程(ProcessorTask.java:954) .DefaultProtocolChain.execute(DefaultProtocolChain.java:102) 在 com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) 在 com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) 在 com. sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) at com.sun.grizzly.ContextTask.run(ContextTask.java:69) at com .sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) 在 com。sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) 在 java.lang.Thread.run(Thread.java:619)

0 投票
1 回答
1062 浏览

java - 如何在不重新启动程序的情况下禁用 AspectJ?

我有一个应用程序使用带有加载时间编织的 AspectJ 来建议各种方法。我想在我的程序中放置一个开关来禁用方面,而无需进行任何源代码更改或重新启动程序。它需要在关闭时产生尽可能少的开销。谢谢!

0 投票
1 回答
483 浏览

java - AfterAdvice 用于静态实现接口的类的所有构造函数

我想对域对象进行一些授权检查。这包括检查是否允许某人实例化一个对象(取决于它的类型——这个检查是在外部完成的,所以不需要解决这个问题)。

我们所有的领域对象都实现了一个特定的接口(直接或间接)

我需要的是一个在域对象实例化之后运行的建议,并且能够使用创建的实例(确定权限所需的)。(此外,当从休眠状态调用构造函数时,建议可能不会执行)

我想使用 AspectJ 实现这一点(它正在为方法工作)理想情况下只使用静态分析,因为没有运行时相关的更改

现在我正在尝试创建一个拦截构造函数调用的@AfterReturning adivce。但我没有让切入点起作用。

我尝试了什么:

但两者都不起作用。

有谁知道我怎么能做到这一点?

问候迈克尔

0 投票
3 回答
26504 浏览

java - Spring AOP 关于注解控制器的建议

我正在尝试使用 AOP 在带注释的控制器之后进行一些处理。一切都在运行,没有错误,但建议没有被执行。

这是控制器代码:

和应用程序配置中的设置

和实际的建议

甚至可以对带注释的控制器提出建议吗?我正在使用 Spring 2.5。

0 投票
1 回答
3640 浏览

java - 使用 aop.xml 在 AspectJ 中加载时间编织

据我了解,要使用 aop.xml 文件进行加载时间编织,它必须放在 META-INF 中。有没有办法解决这个问题并在任何目录中使用 aop.xml (或任何 xml 文件)?谢谢。

0 投票
1 回答
2377 浏览

java - 带有局部变量注解的 AOP

我想使用局部变量注释来做更好的 AOP。一个想法是使用注释通过代理来实现 Future<T> 概念。

我可以以某种方式让 AspectJ 生病并使用局部变量注释来完成我想要的工作吗?我知道其他线程表明 Java 并不真正支持它们,但它会很神奇。我真的不想传递 Future 并打破封装。

0 投票
1 回答
358 浏览

java - 如何使用 AspectJ 更改 JOptionPane 中的按钮

我需要更改应用程序中每个 JButton 的行为(这是一个研究项目)。我们认为使用方面更改所有按钮的最佳方式是保持它的整洁——我们不必将所有 262 个实例更改为新类型。我们遇到了障碍。我们编写的方面不会像修改项目中的每个其他按钮那样修改 JOptionPane 中的按钮。这是我的建议:

这与 JButton 的所有其他构造函数匹配,但似乎缺少 JOptionPane 使用的构造函数。我怎样才能访问他们的创作?我还是 AOP 的新手,所以也许这甚至不可能。