我目前正在Java项目中设置AspectJ
。为了使我的@Value
类中的@Autowired
和AuditingAspect.aj
属性得到正确的实例,我有一个ApplicationContext.xml
文件,在其中我将.aj
类声明为具有factory-method =“ aspectOf”属性的Bean。
我想知道是否可以使用注释设置此工厂方法属性,因为在项目中,所有bean均使用注释声明。我仅为该aspectJ bean创建了ApplicationContext.xml,但它使我感到困扰,但我找不到使用注释的方法。
我尝试使用Java配置类来执行此操作,但是出现以下错误:
[错误]无法执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (默认编译)在项目virtualprinter队列上:编译 失败:编译失败:
[错误] / C:/用户/ avangrunderbe /文档/Oniryx/virtualprinter-c/virtualprinter-queue/src/main/java/be/fgov/minfin/virtualprinter/VirtualPrinterQueueConfig.java:[3,45] 找不到符号
[错误]符号:类AuditingAspect
[错误]位置:包be.fgov.minfin.virtualprinter.aspects VirtualPrinterQueueConfig.class
AuditingAspect.aj
public aspect AuditingAspect {
@Value("${auditlog.request.logged_by}")
private String AUDIT_LOG_REQUEST_LOGGED_BY;
@Value("${auditlog.request.ressource}")
private String AUDIT_LOG_REQUEST_RESOURCE;
@Value("${auditlog.endpoint}")
private String AUDIT_LOG_ENDPOINT;
@Value("${auditlog.user}")
private String AUDIT_LOG_USER;
@Value("${auditlog.password}")
private String AUDIT_LOG_PASSWORD;
@Autowired
private AuditLogger auditLogger;
(...)
}
ApplicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="auditingAspect"
class="be.fgov.minfin.virtualprinter.aspects.AuditingAspect"
factory-method="aspectOf"/>
</beans>
VirtualPrinterQueueConfig.java
@Configuration
public class VirtualPrinterQueueConfig {
@Bean
public AuditingAspect getAuditingAspect(){
return new AuditingAspect();
}
}
PS:对不起,我的英语不是我的母语。