gpt4 book ai didi

java - Spring 加载时间编织不检测用@configurable注释的类

转载 作者:搜寻专家 更新时间:2023-11-01 00:58:34 25 4
gpt4 key购买 nike

我无法让 AspectJ 在我的主项目中对一个用 @configurable 注释的类执行加载时间织入。没有设置任何字段,也没有触及任何 setter 。

我认为配置本身没有问题,因为我已经提取了配置并在较小的沙盒项目上对其进行了测试。只是为了它,我会把它包括在这个问题中。

所以,我想知道:

  1. 在更大的项目中是否有任何东西可能会阻碍 Spring/AspectJ 检测这个特定的类?
  2. 有没有办法检查 spring 是否知道问题中的类?

最后,我可以提取任何代码(请原谅混淆):

来自配置 XML:

<context:annotation-config />
<context:spring-configured />
<context:component-scan base-package="se.isydev" />
<context:component-scan base-package="se.istools" />
<aop:aspectj-autoproxy />
<context:load-time-weaver aspectj-weaving="on" />
<context:property-placeholder location="classpath:settings.properties" />
(...)
<bean class="com.company.ClassToBeWeaved"
scope="prototype">
<property name="injectedBean" ref="injectedBean" />
</bean>

类本身:

@Configurable
public class ClassToBeWeaved {
private InjectedBean injectedBean;

@Required
public void setInjectedBean() { ... }
}

编辑:

好吧,事实证明它由于循环依赖而无法正常工作。天哪,我喜欢处理遗留代码。尽管如此,我最初的问题仍然存在。

最佳答案

您可能忘记了“weave”。将 -javaagent:path/to/aspectjweaver.jar-javaagent:path/to/spring-agent.jar 添加到您的命令行。

我还建议您 @Autowire 您的依赖项,而不是显式注入(inject)它。

关于java - Spring 加载时间编织不检测用@configurable注释的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1389760/

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