利用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,求问题原因和解决办法。 展开
在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,求问题原因和解决办法。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询