问题标签 [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.
eclipse - 在 Eclipse 中升级 AspectJ 运行时库
我正在尝试升级到比 Eclipse 附带的更新版本的 aspectjrt。我更新了 maven pom.xml 中的版本号。Eclipse 似乎没有选择它,它仍然在其类路径上显示内置版本。
m2eclipse 使用哪个版本的库?
java - Spring Optimistic Locking:如何重试事务方法直到提交成功
我将 Spring 2.5 和 Hibernate JPA 实现与 Java 和“容器”托管事务一起使用。
ConcurrencyFailureException
我有一个“用户提交后”方法,可以在后台更新数据,无论是否有异常都需要提交StaleObjectStateException
,因为它永远不会显示给客户端。换句话说,需要把乐观锁变成悲观。(如果方法执行需要更长的时间并且有人在其他事务中更改了数据,则可能会发生)
我读了很多关于幂等的东西,如果在搜索 DEFAULT_MAX_RETRIES或6.2.7 时出现异常,请重试。示例或第 14.5 章。重试。我还在这里和这里的 stackoverflow 中找到了。
我试过这个:
RetryOnConcurrencyException
是我的注释,用于标记发生异常时需要重试的方法。没用...我也尝试了几种方法SELECT ... FOR UPDATE
,例如EntityManager.lock(...)
使用 Spring 避免过时数据、脏读等策略的最佳方法是什么?重试?,同步?,JPA 锁定?,隔离?,选择...进行更新?我无法让它工作,我对任何帮助感到非常高兴。
这是我喜欢做的一些伪代码:
在 // XXX 和 // YYY 之间,另一个会话可以修改项目,然后抛出 StaleObjectStateException。
maven-2 - 在 maven 中加入 -xmlConfigured
maven-aspectj-plugin 是否有一个选项来指定ajc 的选项-xmlConfigured?
如果没有,使用 maven 使用最新版本的 ajc 编译方面代码的常见做法是什么?
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)
java - 如何在不重新启动程序的情况下禁用 AspectJ?
我有一个应用程序使用带有加载时间编织的 AspectJ 来建议各种方法。我想在我的程序中放置一个开关来禁用方面,而无需进行任何源代码更改或重新启动程序。它需要在关闭时产生尽可能少的开销。谢谢!
java - AfterAdvice 用于静态实现接口的类的所有构造函数
我想对域对象进行一些授权检查。这包括检查是否允许某人实例化一个对象(取决于它的类型——这个检查是在外部完成的,所以不需要解决这个问题)。
我们所有的领域对象都实现了一个特定的接口(直接或间接)
我需要的是一个在域对象实例化之后运行的建议,并且能够使用创建的实例(确定权限所需的)。(此外,当从休眠状态调用构造函数时,建议可能不会执行)
我想使用 AspectJ 实现这一点(它正在为方法工作)理想情况下只使用静态分析,因为没有运行时相关的更改
现在我正在尝试创建一个拦截构造函数调用的@AfterReturning adivce。但我没有让切入点起作用。
我尝试了什么:
但两者都不起作用。
有谁知道我怎么能做到这一点?
问候迈克尔
java - Spring AOP 关于注解控制器的建议
我正在尝试使用 AOP 在带注释的控制器之后进行一些处理。一切都在运行,没有错误,但建议没有被执行。
这是控制器代码:
和应用程序配置中的设置
和实际的建议
甚至可以对带注释的控制器提出建议吗?我正在使用 Spring 2.5。
java - 使用 aop.xml 在 AspectJ 中加载时间编织
据我了解,要使用 aop.xml 文件进行加载时间编织,它必须放在 META-INF 中。有没有办法解决这个问题并在任何目录中使用 aop.xml (或任何 xml 文件)?谢谢。
java - 带有局部变量注解的 AOP
我想使用局部变量注释来做更好的 AOP。一个想法是使用注释通过代理来实现 Future<T> 概念。
我可以以某种方式让 AspectJ 生病并使用局部变量注释来完成我想要的工作吗?我知道其他线程表明 Java 并不真正支持它们,但它会很神奇。我真的不想传递 Future 并打破封装。
java - 如何使用 AspectJ 更改 JOptionPane 中的按钮
我需要更改应用程序中每个 JButton 的行为(这是一个研究项目)。我们认为使用方面更改所有按钮的最佳方式是保持它的整洁——我们不必将所有 262 个实例更改为新类型。我们遇到了障碍。我们编写的方面不会像修改项目中的每个其他按钮那样修改 JOptionPane 中的按钮。这是我的建议:
这与 JButton 的所有其他构造函数匹配,但似乎缺少 JOptionPane 使用的构造函数。我怎样才能访问他们的创作?我还是 AOP 的新手,所以也许这甚至不可能。