<!-- 给CommRecode类注入 IMdglMdxxService,IMdglMdlbService   xiongchangjing 2012-2-17-->
<bean  class="com.neili.datebase.CommRecode">
<property name="mdglMdxxService" ref="iMdglMdxxService" />
<property name="mdglMdlbService" ref="iMdglMdlbService" />
</bean>public class CommRecode {
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
private IMdglMdxxService mdglMdxxService;
private IMdglMdlbService mdglMdlbService;
public void setMdglMdxxService(IMdglMdxxService mdglMdxxService) {
this.mdglMdxxService = mdglMdxxService;
}
public void setMdglMdlbService(IMdglMdlbService mdglMdlbService) {
this.mdglMdlbService = mdglMdlbService;
}
public IMdglMdxxService getMdglMdxxService() {
return mdglMdxxService;
}
public IMdglMdlbService getMdglMdlbService() {
return mdglMdlbService;
}

解决方案 »

  1.   

    mdglMdxxService 和mdglMdlbService都是为空
      

  2.   

    接口和抽象类是不能new的~~同样也不能被注入
      

  3.   

    但是实现类new的话也是为null,但是Spring里面的配置不都是注入接口么
      

  4.   

    <bean  class="com.neili.datebase.CommRecode">
            <property name="mdglMdxxService" ref="iMdglMdxxService" />
            <property name="mdglMdlbService" ref="iMdglMdlbService" />
        </bean>
    mdglMdxxService mdglMdlbService 你这2个是接口的话 ref="iMdglMdxxService" 这里应该指定的是具体实现类
      

  5.   

    什么意思?对Spring不了解,很少用到。MdglMdxxService.java和MdglMdlbService.java是实现类<bean id="iMdglMdxxService" parent="transactionProxy">
    <property name="target">
    <bean
    class="com.neili.register.spring.impl.MdglMdxxService"
    singleton="false">
    <property name="mdglMdxxDAO" ref="iMdglMdxxDAO" />
    <property name="zhglZhzjyeDAO" ref="iZhglZhzjyeDAO" />
    <property name="mdglMdygxxDAO" ref="iMdglMdygxxDAO" />
    <property name="zhglHyzhxxDAO" ref="iZhglHyzhxxDAO" />
    <property name="xtglYwbzDAO" ref="iXtglYwbzDAO" />
    <property name="zhglZhywlsDAO" ref="iZhglZhywlsDAO" />
    <property name="hyJfyjDAO" ref="iHyJfyjDAO" />
    <property name="mdglMdxxKzDAO" ref="iMdglMdxxKzDAO" />
    </bean>
    </property>
    </bean>
    <bean id="iMdglMdlbService" parent="txProxyTemplate">
    <property name="target">
    <bean
    class="com.neili.register.spring.impl.MdglMdlbService">
    <property name="mdglMdlbDAO" ref="iMdglMdlbDAO" />
    </bean>
    </property>
    </bean>
      

  6.   

    错误为空指针,对象为空,mdglMdxxService和mdglMdlbService都是为空
      

  7.   

    业务层注入代码<bean id="iMdglMdxxService" parent="transactionProxy">
            <property name="target">
                <bean
                    class="com.neili.register.spring.impl.MdglMdxxService"
                    singleton="false">
                    <property name="mdglMdxxDAO" ref="iMdglMdxxDAO" />
                    <property name="zhglZhzjyeDAO" ref="iZhglZhzjyeDAO" />
                    <property name="mdglMdygxxDAO" ref="iMdglMdygxxDAO" />
                    <property name="zhglHyzhxxDAO" ref="iZhglHyzhxxDAO" />
                    <property name="xtglYwbzDAO" ref="iXtglYwbzDAO" />
                    <property name="zhglZhywlsDAO" ref="iZhglZhywlsDAO" />
                    <property name="hyJfyjDAO" ref="iHyJfyjDAO" />
                    <property name="mdglMdxxKzDAO" ref="iMdglMdxxKzDAO" />
                </bean>
            </property>
        </bean>
    <bean id="iMdglMdlbService" parent="txProxyTemplate">
            <property name="target">
                <bean
                    class="com.neili.register.spring.impl.MdglMdlbService">
                    <property name="mdglMdlbDAO" ref="iMdglMdlbDAO" />
                </bean>
            </property>
        </bean>把业务层注入struts的代码是<bean name="/mdglMdxx" 
       class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="target">
    <bean
    class="com.neili.register.struts.action.MdglMdxxAction">
    <property name="mdglMdxxService" ref="iMdglMdxxService" />
    <property name="mdglMdlbService" ref="iMdglMdlbService" />
    </bean>
    </property>
    </bean>那要业务层注入到普通类该怎么注入呢
      

  8.   


    <bean id="iMdglMdlbService" parent="txProxyTemplate">
            <property name="target">
                <bean
                    class="com.neili.register.spring.impl.MdglMdlbService">
                    <property name="mdglMdlbDAO" ref="iMdglMdlbDAO" />
                </bean>
            </property>
        </bean>你只指定的父类名称,但是iMdglMdlbService对应的class是什么你却没有指定,spring在用反射生成对象的时候他获取不到className,所以没办法给你生成对象,当然你这个iMdglMdlbService就是null了。如下:
    <bean id="loggerService" class="com.cs.web.service.impl.LoggerServiceImpl">
        .........
    </bean>
     
      

  9.   

    您的意思是只要加个class属性就行 了么?
      

  10.   

    在加了class名后启动就报错org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'iMdglMdlbService' defined in ServletContext resource [/WEB-INF/classes/applicationContext-20090511.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.neili.register.spring.facade.IMdglMdlbService]: Specified class is an interface