<!-- 初始化spring -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>属性的的SET与GET方法    protected SqlMapClientTemplate sqlMapClientTemplate; public SqlMapClientTemplate getSqlMapClientTemplate() {
return sqlMapClientTemplate;
} public void setSqlMapClientTemplate(SqlMapClientTemplate sqlMapClientTemplate) {
this.sqlMapClientTemplate = sqlMapClientTemplate;
} 属性的SET注入<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
   <property name="configLocation">
      <value>classpath:com/city/conf/sqlmapconfig.xml</value>
    </property>
    <property name="dataSource">
       <ref bean="dataSource"/>
    </property>
</bean>
<bean id="sqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
     <property name="sqlMapClient" > 
    <ref bean="sqlMapClient"/>
     </property>
</bean>
<bean id="BaseDAO" abstract="true">
<property name="sqlMapClientTemplate" >
<ref bean="sqlMapClientTemplate" />
</property>
     </bean>
<bean id="UserinfoDAO" parent="BaseDAO" class="com.city.dao.UserinfoDAO">  
 </bean>这里我用UserinfoDAO继承BaseDAO
当我在UserinfoDAO中使用BaseDAO中的这个sqlMapClientTemplate时
出现空指钟异常我想是不是spring的初始化有问题,我在userinfoDAO中随便加入一个string型的属性
用<property name="pp"><value>45648798</value> </property>
来尝试,调试发现这个属性里面也没有被注入
自己对spring不是很熟
可以帮忙处理一下这个问题吗
3Qjava.lang.NullPointerException

解决方案 »

  1.   


    <bean id="sqlMapClientTemplate" class="应该是你的类所在的路径">
            <property name="sqlMapClient" > 
               <ref bean="sqlMapClient"/>
            </property>
    </bean>
      

  2.   

    SqlMapClientTemplate 你这个类里有 sqlMapClient 那么个属性吗?我看你的属性是sqlMapClientTemplate啊。
      

  3.   

    [code=Java]
        protected SqlMapClientTemplate sqlMapClientTemplate;    public SqlMapClientTemplate getSqlMapClientTemplate() {
            return sqlMapClientTemplate;
        }    public void setSqlMapClientTemplate(SqlMapClientTemplate sqlMapClientTemplate) {
            this.sqlMapClientTemplate = sqlMapClientTemplate;
        } 
    [/code
    这是在BaseDAO类里吗?,麻烦你把怎么拿到UserinfoDAO实例的代码发上来,另外测试一下,直接从spring上下文里拿sqlMapClientTemplate的实例有没有问题。
      

  4.   

    是BaseDAO类里面的
    这里的sqlMapClientTemplate也可以通过ApplicationContext 取到实例
    Spring 里面配置的所能注入能过上下文对象都可以取到实例
    但如果我不使用上下文对象,我这里就会报出空指钟的异常了
      

  5.   

    问下
    我在里定义个DAOFactory,这个factory有个静态的初始化方法getInstance
    然后通过这个工厂类开取得各DAO的实例
    我在这里的spring的配置是怎么样的呢
    是不是在factory配置中加入lookup来实例各DAO对象
    如果是他会在报出这个factory需要初始化的错误
    谢谢
    帮忙解答下!!!
      

  6.   

    问下
    我在里定义个DAOFactory,这个factory有个静态的初始化方法getInstance
    然后通过这个工厂类开取得各DAO的实例
    我在这里的spring的配置是怎么样的呢
    是不是在factory配置中加入lookup来实例各DAO对象
    如果是他会在报出这个factory需要初始化的错误
    谢谢
    帮忙解答下!!!