日期:2014-05-17  浏览次数:20688 次

(请高人们指点)spring管理的bean,为什么tomcat启动完成后,bean中注入的属性变为了NULL
在我的applicationContext.xml中配置了如下bean
<bean id="sysConfigService" parent="baseTxProxy">
  ……
</bean>

<bean id="configer" class="com.family168.init.Configer" >
  <property name="sysConfigService">
  <ref bean="sysConfigService" />
  </property>
</bean>

Configer类的相关代码为
public class Configer
{
  private ICommon sysConfigService;
  public void setSysConfigService(ICommon sysConfigService)
  {
  this.sysConfigService = sysConfigService;--------(1)  
  }
  public void loadSysConfig() 
  {
  ArrayList list=(ArrayList)this.sysConfigService.getObjs();---------(3)
  }
}

这个类我在系统启动时作了调用,代码如下
public class initSystemListener implements ServletContextListener
{
  public void contextInitialized(ServletContextEvent arg0)
  {
  Configer.getInstance("systemConfig").loadSysConfig();------(2)
  }
}
经过断点跟踪,发现系统启动时,可以进入到(1)并且,this.sysConfigService 已经赋了值,但是继续跟踪发现在(2)处进行调用时,进入到(3)后,this.sysConfigService 变成了null

initSystemListener 在web.xml中进行了配置,相关代码如下
<listener> 
  <listener-class> 
  org.springframework.web.context.ContextLoaderListener 
  </listener-class> 
</listener>

<listener>
  <listener-class>
initSystemListener
  </listener-class>
</listener>

请高人指点

------解决方案--------------------
struts2是放在web里一直存放着,所以到处可以用