利用java的反射机制动态调用类方法,在被调用的类中获取spring的BO,为什么BO无法实例化?

客户端调用webservice里面的doInsertUralOper方法,在doInsertUralOper中根据传入参数的不同,利用java反射机制,调用test类,在... 客户端调用webservice里面的doInsertUralOper 方法,
在doInsertUralOper 中根据传入参数的不同,利用java反射机制,调用test类,在test里面调用BO,BO里调用了DAO~
BO的配置文件如下:
<bean id="uralOperBOAction" parent="baseTransactionProxy">
<property name="target">
<ref bean="UralOperBO" />
</property>
</bean>

<bean id="UralOperBO" class="com.neusoft.uraloper.bo.impl.UralOperBOImpl">
<property name="uralOperDAO" ref="UralOperDAO" />
</bean>
test类方法:
public void test(String paraStr){
IUralOperBO uralOperBO = (IUralOperBO) SpringContextUtil.getBean("uralOperBOAction");
try {
uralOperBO.test(paraStr);
} catch (ServiceException e) {
e.printStackTrace();
}
}
SpringContextUtil类
public class SpringContextUtil implements ApplicationContextAware {
public SpringContextUtil() {
}
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static Object getBean(String name) throws BeansException {
return applicationContext.getBean(name);
}
…………
private static ApplicationContext applicationContext;
}
现在能够反射到test类,但是在test里面不能将BO实例化,而且获取不到spring的上下文,SpringContextUtil中的applicationContext为null,求问题原因和解决办法。
展开
 我来答
yyq2012aa
2013-11-23 · 超过56用户采纳过TA的回答
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:131万
展开全部
SpringContextUtil 这个要配置成spring的bean。

test类要有无参构造函数才能反射创建。
更多追问追答
追问
SpringContextUtil 已经配置了,在系统启动初始化的时候可以获取到上下文,但是反射到test类的时候就获取不到不知道为什么
追答
你的BO的bean名字叫“UralOperBO”,你取bean的时候用的是“uralOperBOAction”。这是什么意思?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式