<bean id="Pscdao" //这个id起什么作用?
class="dao.PscDaoImpl"
lazy-init="true">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean> <bean id="servicePsc" parent="txProxyTemplate"//此id是什么作用?
lazy-init="true">
<property name="target">
<bean 
class="service.IptvPscPopServicImpl">
<property name="Pscdao">//name的作用?
<ref local="Pscdao" />//ref  cocal的意思。
</property>
</bean>
</property>
</bean>
上面的配置什么意思?求详解。spring配置中那么属性需要在对应的类中做什么样的操作?

解决方案 »

  1.   

    id 就好像你设置变量名一样.只是一个名称而已,为了好记和容易读懂,一般与类名对应,特殊的bean Id 加上一些名词,如service target transaction 等等.上面这个的意思就是 bean PscDaoImpl 对应 dao包下的PscDaoImol,并且往里面注入定义好的sessionFactory第二个bean servicePsc 继承定义好的bean txProxyTemplate 包含Target Pscdao属性 name代表属性名,ref标签指明向name中属性注入什么,比如说向接口xxDao中注入该接口实现类xxDaoImpl.这个xxDaoImpl一定要是定义好的.你第二个类中就是说向bean ServicePsc 的 PscDao 属性中 注入上面定义好的Bean Pscdao
      

  2.   

    一 <bean id="Pscdao" //这个id起什么作用? 
    <ref local="Pscdao" />//ref  cocal的意思就是将id为Pscdao的bean作为id=servicePsc 的一个属性<bean id="servicePsc" parent="txProxyTemplate"//此id是什么作用? 
    为了标示区分
      

  3.   

    1楼前辈:那就是说我的配置应该是没有问题的了?可是它会产生这个错误是为什么?
    javax.servlet.ServletException: Error creating bean with name 'servicePsc' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Cannot create inner bean 'service.IptvPscPopServicImpl#b10190' of type [service.IptvPscPopServicImpl] while setting bean property 'target'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [service.IptvPscPopServicImpl] for bean with name 'service.IptvPscPopServicImpl#b10190' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: service.IptvPscPopServicImpl
    org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
      

  4.   

    <property name="target"> 你的这个属性没有注入
      

  5.   

    哦 看错了,可能是你target注入的bean没有Id我又一次碰到这个错.要删除掉几个包,如果你用的hibernate3,就把hiberna2的包删掉,还有一个asm.jar 如果出现 asm 1.1.1.jar或者其他数字,这表示是asm.jar的其他版本,只需要保留asm.jar