gpt4 book ai didi

spring - 没有找到匹配的工厂方法 : factory method 'aspectOf()'

转载 作者:行者123 更新时间:2023-12-04 15:01:51 32 4
gpt4 key购买 nike

我有以下几个方面:

package trc.suivi.aspects;

import java.util.Date;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;

import trc.suivi.domain.EvenementPli;
import trc.suivi.domain.Pli;
import trc.suivi.domain.TypeEvenement;
import trc.suivi.repository.EvenementPliRepository;

public aspect PliEventManagerAspect {

private static final Logger log = Logger.getLogger(PliEventManagerAspect.class);

@Autowired
private EvenementPliRepository evenementPliRepository;

public PliEventManagerAspect() {
}

pointcut catchEMPersist(Pli pli) : (execution(* trc.suivi.repository.PliRepository+.save(*)) && args(pli));
pointcut catchEMPersist() : (execution(trc.suivi.domain.Pli.persist()));

after(Pli pli) returning: catchEMPersist(pli) {
log.debug("catchEMPersist(pli)");
EvenementPli ev = new EvenementPli();
ev.setDateCreation(new Date());
ev.setType(TypeEvenement.creation);
ev.setMessage("Création d'un pli");
evenementPliRepository.save(ev);
}

after() returning: catchEMPersist() {
log.debug("catchEMPersist()");
EvenementPli ev = new EvenementPli();
ev.setDateCreation(new Date());
ev.setType(TypeEvenement.creation);
ev.setMessage("Création d'un pli");
evenementPliRepository.save(ev);
}

}

以及以下 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:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<aop:aspectj-autoproxy />
<bean class="trc.suivi.aspects.PliEventManagerAspect" factory-method="aspectOf"/>
</beans>

当我启动我的应用程序时,我得到了这个:
No matching factory method found: factory method 'aspectOf()'. Check that a method with the specified name exists and that it is static.

我很震惊,因为我很确定这个配置以前运行良好。更重要的是,这是一个 Spring Roo 项目,所以所有的 aspectJ 配置都应该没问题。

有人可以帮忙吗?

最佳答案

这可能是因为您的方面由于某种原因尚未编译,您可以尝试向您的 aspectj weaver 插件添加更多诊断信息,并查看控制台上打印的内容,如下所示:

<configuration>
<outxml>true</outxml>
<showWeaveInfo>false</showWeaveInfo>
<Xlint>warning</Xlint>
<verbose>true</verbose>
...
</configuration>

此外,由于您使用的是原始 aspectj,因此您实际上并不需要使用 <aop:aspectj-autoproxy/>用于触发 Spring AOP。

关于spring - 没有找到匹配的工厂方法 : factory method 'aspectOf()' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12144606/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com