草庐IT

java - 为什么我收到 "advice has not been applied"警告?

为什么会出现下面的代码:pointcutcallsToList():call(*List.*(..));before(Listl):callsToList()&&target(l){System.out.println("cool");}生成以下警告:advicedefinedinorg.eclipse.ajdt.examples.ListAdvicehasnotbeenapplied[Xlint:adviceDidNotMatch]我在Eclipse中工作。我安装了eclipseaspectjplugin当然,我的项目是aspectj项目。编辑:此外,我从ajdt插件提供的一个工作示

java - 如何在类上创建一个方面,而不是使用 Spring AOP 的 bean?

我在处理遗留应用程序,其中使用了SpringAOP(即ProxyFactoryBean)。我需要围绕某个类的方法添加一个方面。然而,这个类不是一个bean。AspecjJ切入点表达式如下所示:执行(*xyz.package.Class.method())我创建了一个MethodInterceptor和AspectJExpressionPointcut,但我不知道如何让这两者协同工作。编辑:我没有此类的源代码,它是第3方库。这个类的实例不是我创建的,既不是在源代码中,也不是在作为beans的spring配置中。它由图书馆内部使用。感谢任何帮助。 最佳答案

java - 没有 XML 的 Spring AOP

我试图在没有任何XML的情况下设置SpringAOP,想知道如何以这种方式启用自动代理。定义一个AutoProxyCreator-bean可行,但有没有更简单的方法?这是我的@Configuration的样子:@ConfigurationpublicclassContext{@BeanpublicAnnotationAwareAspectJAutoProxyCreatorannotationAwareAspectJAutoProxyCreator(){returnnewAnnotationAwareAspectJAutoProxyCreator();};...}所有其他bean都由An

java - Spring 异步不起作用

我们有一个用spring3.0编写的应用程序。我注意到@Async不起作用。我四处搜索,发现我需要添加但是当我这样做时,我得到了一个异常(exception)。这是我的配置文件:classpath:version.propertiesorg.springframework.web.servlet.view.tiles2.TilesViewAppBundle/WEB-INF/tiles.xml这是我得到的异常:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'location

java - 使用AspectJ的异步执行切面

问题来了-我正在使用Spring提供的@Async来异步执行一些方法。但是,因为它是基于代理的,所以如果从同一个类中调用该方法,它将不起作用。我确实需要从同一个类中调用我的异步方法。我知道如果我使用AspectJ而不是SpringAOP,我将能够做到这一点。所以我的问题是,有没有办法使用Spring的@Async和加载时间编织它?或者,是否已经编写了一个基于AspectJ的异步执行方面我可以使用,而不是自己编写? 最佳答案 是的,用@Async注释具体类的方法,把spring-aspectsJAR(包含异步方面)到你的类路径中,使用

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

据我了解,要使用aop.xml文件加载时间织入,它必须放在META-INF中。有没有办法解决这个问题并在任何目录中使用aop.xml(或任何xml文件)?谢谢。 最佳答案 您可以使用系统属性org.aspectj.weaver.loadtime.configuration指向另一个AspectJ配置文件。例如:-Dorg.aspectj.weaver.loadtime.configuration=file:META-INF/myaop.xml 关于java-使用aop.xml在Aspec

java - 如何在 Spring AOP 中停止方法执行

我创建了一个名为BaseCron的bean,它有一个方法executeBefore(),该方法在下面的spring配置中配置为拦截Crons类的所有方法调用并在它们之前执行。executeBefore()方法有一些验证。我早些时候验证了某些条件,如果它们是假的,我就会抛出异常。这种异常抛出导致方法失败,因此Crons类中的方法没有执行。它工作正常。您能否建议我可以停止Crons类的执行而不抛出异常的其他方法。我尝试返回,但没有成功。Abc类:publicclassAbc{publicvoidcheckCronExecution(){log.info("TestExecuted");lo

java - 为什么这个 Spring AOP 切入点没有被触发?

我正在编写非常基本的基于模式的SpringAOP,这是.xmltao.zhang.Listener中的方法scream()只是打印一些文本,应该在调用方法callme()时执行。我有一个名为logger的bean,它有方法log()和callme()publicvoidlog(){callme();System.out.println("Hellofromlogger~~~~~~~~~~~~~~~~~~~");}publicvoidcallme(){System.out.println("I'mcalled");}注意callme()是由log()调用的现在我有一个每5秒调用一次log

java - Spring:委托(delegate)给自定义代理包装器进行接口(interface)注入(inject)

在一个非常大的遗留应用程序中,我有一些接口(interface)和类不实现这些接口(interface)。接口(interface)是基于类生成的,所以签名相同(除了接口(interface)在上面添加了另一个异常(exception))并且名称相似(因此很容易从接口(interface)名称中找到类名)。为了实现接口(interface),我们进行了一系列处理和记录调用,但基本上使用java.lang.reflect.Proxy委托(delegate)给类。简化后看起来像这样://ThiswillcreateaproxyandinvokehandlerthatcallsHelloWo

Java - 注册所有用@MyAnnotation 注释的类

我有一个注解@MyAnnotation,我可以用它来注解任何类型(类)。然后我有一个名为AnnotatedClassRegister的类,我希望它注册所有用@MyAnnotation注释的类,以便我以后可以访问它们。如果可能的话,我想在创建AnnotatedClassRegister时自动注册这些类,最重要的是在实例化带注释的类之前。我有AspectJ和Guice可供使用。到目前为止我想出的唯一解决方案是使用Guice将AnnotatedClassRegister的单例实例注入(inject)一个方面,它搜索所有用@MyAnnotation注释的类,并且它添加在其构造函数中注册此类所需