gpt4 book ai didi

java - ProxyFactoryBean 为 Target 类返回空类对象

转载 作者:行者123 更新时间:2023-12-04 00:33:42 25 4
gpt4 key购买 nike

我在 ProxyFactoryBean 中遇到问题类,

我们想要获取 targetBean 的类名的 ProxyFactoryBean .

当我们调用 getType 时在 BeanFactory给 bean 名称,它总是返回 null。

我们的Java代码是

public class TestSpring {
public static void main(String args[]){
TestSpring ts = new TestSpring();
ts.process();
}

private void process() {
BeanFactory factory = new XmlBeanFactory(new FileSystemResource("E:\\beans.xml"));
Class c = factory.getType("scor.imagedev.action.imageDevServerTaskActions");
System.out.println(c);
}
}

我们的配置文件如下:

<bean id="scor.actionProxyTemplate" class="org.springframework.aop.framework.ProxyFactoryBean"  abstract="true" >
<property name="proxyTargetClass" value="true" />
</bean>

<bean id="scor.imagedev.action.imageDevServerTaskActions" parent="scor.actionProxyTemplate" scope="prototype">
<property name="target">
<bean class="test.spring.Foo"/>
</property>
</bean>

我想在这里添加一些其他的东西。

  1. 如果我们将 bean 设为单例,它就可以工作。但在我们的例子中,我们希望它是一个原型(prototype)。
  2. 我们必须使用 BeanFactory.getType(<beanName>) .这是我们的基础框架进行调用。我们不能改变我们的基本框架。
  3. 威尔 targetSource能解决问题吗?我试过了,但没用。可能是我用错了
  4. 我正在使用 Spring 2.0.6。

问候安 git

最佳答案

文档说如果类型不可确定,该方法将返回 null。我找不到这意味着什么的引用,但考虑到症状,我会假设它由于原型(prototype)范围而无法确定。 (bean 存在,否则会抛出异常)

查看源代码后,我没有看到返回 null 的原因 - 如果没有单例,则引用 bean 定义。我可以建议的是尝试暂时获取 spring 2.5.6(或 3.0.x)并查看问题是否可以重现或得到修复。

关于java - ProxyFactoryBean 为 Target 类返回空类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3845332/

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