问题标签 [spring-aspects]
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.
java - Rest + Spring AOP + 接口不注入
我有一个用于记录的 Spring AOP 方面,其中可以通过向其添加注释来包含用于记录的方法,如下所示:
我一直在 Spring bean 上使用它,它工作得很好。现在,我想在 REST 服务上使用它,但遇到了一些问题。所以我有:
这个设置工作得很好。我试图添加日志记录的 Rest-service 现在有一个接口,并且不知何故把事情搞砸了。一旦我将@AspectLogging
注释添加到其中一个方法中,就不会在 bean 中注入任何依赖项,而且,方面是较新的调用!
我尝试向有效的 REST 服务添加一个接口,但它得到了同样的错误。
有一个接口怎么会导致这种类型的问题?方面记录器适用于其他地方具有接口的类,似乎只有当它是 REST 服务时才会出现问题。
java - Java AOP JoinPoint 不获取参数名称
我正在使用 Java Spring Mvc 和 Spring AOP 从用户那里查找参数名称。
我有一个控制器,它从用户那里获取参数并调用服务。
我有一个在服务之前运行的方面。
方面应检查用户名和 apiKey 参数是否存在。
这是我的代码:
控制器 :
域服务接口:
域服务:
还有我的 AOP 课:
在这种情况下,我希望得到“域”、“用户”和“apiKey”参数名称。
知道我在这里缺少什么吗?
谢谢,
或者。
spring - Spring Weaving:@Configurable 对象如果用作自动代理方法中的参数,则无法正确编织
请考虑使用 spring 4.0.7 的以下情况
对于 Eclipselink,我们使用 load-time-weaver。因此,我们想同时使用 @EnableSpringConfigured 和 @EnableLoadTimeWeaving 来试验 Springs @Configurable 注解。
这是功能齐全的,Spring-Beans 在构建过程中被完美地注入到 POJO 中。这个功能对我们很有帮助,因为我们希望在这些 POJO 中保留一些关于验证这些 POJO 的代码,而不是在 Bean 中的其他地方。
我们的一些 Spring 上下文包含不实现任何接口的 Bean,因为它们对于某些包是本地的并且仅在那里使用。可以说,FooLogicBean 就是其中之一。如果要将其注入另一个 Bean,并且某些 Spring-AOP-Aspect (not-aspectj) (如某些性能测量方面)在执行路径中,则 Spring 将为 FooLogicBean 创建一个 CGLIB 自动代理并注入它。这是功能齐全的,也可以完美运行。
当我们想要实际使用带有 @Configurable 注释的 POJO 作为 FooLogicBean 方法(如 fooLogicBean.doValidate(myPojo); )中的参数时,就会出现问题,分别是 CGLIB 代理。在这种情况下,一些重要的魔法阻止 POJO 通过 aspectj 编织(来自 spring-aspects 的 AnnotationBeanConfigurerAspect)。无论调用前面提到的 doValidate() 方法,它甚至都不会在代码的任何地方编织。
如果我们在 FooLogicBean 中创建该 POJO,但不将其用作方法参数,则由于 @Configurable,它会再次被编织。
在不知道 Autoproxy 创建代码的情况下,我们假设一些花哨的标记例程会阻碍一个类被 aspectj 检测到,如果该类已经在 spring-aop 中使用。在这种情况下使用意味着Access。
有没有人尝试过这种晦涩难懂的星座并知道解决方案?
提前致谢!
eclipse - Spring 4.1.x 使用 AspectJ 和 spring-aspects 打破 Eclipse 编译
我有一个使用 Eclipse、AspectJ 和 Spring 以及编译时编织的设置。我多年来一直在使用它,没有任何问题。
从 Spring 4.0.7 升级到 4.1.0(或 4.1.1)后,/target 文件夹中没有生成类。此问题仅影响一个引用 spring-aspects 的项目。
我的工作区中有其他启用 AspectJ 的项目,使用相同的编译器设置等,但使用它们自己的方面。无论 Spring 版本如何,它们都会继续正常编译和输出类。
外部构建(Maven)适用于 Spring 4.0 和 4.1。
我认为版本在这里不是很相关,但无论如何我使用的是 AspectJ 1.8.2、Java 1.7、Eclipse Luna SR1(也出现在第一个 Luna 版本上)。
这是一个错误还是我错过了什么?
gradle - Gradle AspectJ 插件问题
自从我从 Maven 迁移到 Gradle 后,我的 Spring 应用程序面临一个主要问题:aspectj 不再有效。
例如,带有注释的类@Configurable
(依赖于 aspectj)不会注入它们的依赖项。
为了替换aspectj-maven-plugin
,我尝试使用这个插件:来自 spring security code base但它似乎与 Gradle 2.1 不兼容......
我还尝试应用此处描述的解决方案:http: //architects.dzone.com/articles/working-gradle-spring-aspects无济于事。
我只是想知道使用 Gradle + Spring 的人如何设法利用 aspectj ...
有人可以请教吗?
spring - 使用 AspectJ 的 AOP 无法使用
我是 Spring 框架的新手,正在尝试一些示例示例来理解 AOP,这是我到目前为止所做的,但它不起作用。
问题是,一旦我添加<aop:aspectj-autoproxy />
到 spring.xml,我的构建就会失败,说无法创建带有空指针异常的 bean。但是如果我在没有<aop:aspectj-autoproxy />
标签的情况下运行应用程序,那么它运行良好但没有 AOP。
以下是我的项目的一些细节。
这里我有 AopMain ,它是运行的主类 LoggingAspect 我实际上定义了之前的方面 有两个模型 Circle 和 Triangle ShapeService 它实际上使用了上述两个模型
这里是给他们的代码
奥普主要:
记录方面:
圆圈:
}
三角形:与具有单个属性名称的圆形相同
形状服务:
现在,重要的文件 Spring.xml 出现了:
我收到如下错误:
但是,如果我尝试<aop:aspectj-autoproxy />
在 Spring.xml 中注释该行并运行它能够创建 bean 的代码。请指导我我错过了什么吗?一些图书馆还是一些图书馆冲突?
有什么关系<aop:aspectj-autoproxy />
spring - 从 Spring AOP 执行拦截器后丢失自动装配的属性
在浪费了很多时间试图找到答案之后,我决定发布这个疑问。
我有一个我想被 Spring AOP 拦截的类。
ObjectToBeProxied.java
ExceptionHandlerAspect.java
Spring AOP 配置:
当我调用该方法ObjectToBeProxied.doStuff()
时,ObjectToBeProxied.parameterValueService
自动装配是可以的,而不是空的。
但是,当切面拦截方法调用ObjectToBeProxied.findEventParameterValue(..)
并执行时ExceptionHandlerAspect.handleAround(..)
,ObjectToBeProxied.parameterValueService
就不行了,它是空的。
调试它,我可以发现 Spring AspectObjectToBeProxied
在拦截它后返回代理,但没有自动装配的属性对象。
我哪里错了?
java - 不知道为什么 Spring 方面没有触发
所以我开始深入研究 Spring AOP,并尝试使用注释创建一些基本方面,但由于某种原因它似乎没有触发。
这是我的方面:
当我设置断点时setup()
,markTest()
我可以看到@PostConstruct方法setup()
被触发,但markTest()
没有。
这是我试图切入的 JUnit 测试用例:
这是我的 bean 配置 XML (testing.xml):
和几乎相同,只是handlers.xml
组件扫描中的基本包参数不同utility.xml
显然我做错了什么。任何提示和建议将不胜感激。
编辑 :
好的,所以我尝试将切入点更改为:
针对正在测试的实际方法而不是 JUnit 测试方法,显然方面在这种情况下有效。
所以现在我的假设是 JUnit 和 Spring Aspects 彼此不喜欢。
现在我很好奇是否有办法解决这个问题。
java - 无法构建 MockMvc(已经映射了 X 类型的处理程序)
我有简单的控制器类:
我想用 Spring Security 集成测试我的控制器。基于这篇文章,我创建了以下测试:
但是,在@Before
方法内部,当build()
被调用时,会抛出以下异常:
似乎 Spring 正在尝试两次实例化控制器。为什么?
网络应用配置:
完整的堆栈跟踪:
我可以在 MockMvc 独立设置中运行这个测试,但似乎我不能使用 spring data web integration,这同样很烦人。