当前位置: 代码迷 >> Java Web开发 >> (请高人们指点)spring管理的bean,为什么tomcat启动完成后,bean中注入的属性变为了NULL,该怎么解决
  详细解决方案

(请高人们指点)spring管理的bean,为什么tomcat启动完成后,bean中注入的属性变为了NULL,该怎么解决

热度:1143   发布时间:2013-02-25 21:20:38.0
(请高人们指点)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里一直存放着,所以到处可以用
  相关解决方案