0

オブジェクトを挿入しようとすると、nullポインタ例外が発生します。これが私のコードです:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
 </context-param>'

ApplicationContext.XML

<bean id="accessDao" 
 Class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" 
  autowire-candidate="true">
  <property name="transactionManager" ref="txManager" />   
  <property name="target" ref="accessDaoTarget" />   
   <property name="transactionAttributes">   
   <props>   
  <prop key="*">PROPAGATION_REQUIRED</prop>   
   </props>   
  </property>   

</bean>   '

CommonBean

import com.domain.dao.IDao;
@Named
public class CommonBean implements Serializable{

/**
 * 
 */

private static final long serialVersionUID = 1L;
@Inject
private IDao accessDao;


public IDao getAccessDao()

      {
        return accessDao;
      }

 public void setAccessDao(IDao accessDao)
  {
    this.accessDao = accessDao;
  }

}
4

2 に答える 2

0

私が推測する理由は、Spring によって注釈が付けられたすべてのファイルをコンポーネント スキャンに含める必要があるためです。したがって、これを機能させるには、スキャンするパッケージの範囲を広げます。

から変更する

<context:component-scan base-package="com.myjsf.appl.CommonBean" />

 <context:component-scan base-package="com.domain,com.myjsf" />
于 2013-02-22T06:54:09.273 に答える
-1

その理由は、IDAOインターフェースを実装する「accessDao」Beanを参照しているためだと思います。applicationContext.xmlで宣言されたBeanaccessDaoは、タイプorg.springframework.transaction.interceptor.TransactionProxyFactoryBeanであり、IDAOインターフェースではなくBeanFactoryAwareインターフェースを実装します。

そのため、Springは注入しようとしているBean(IDAO accessDAO)を認識せず、プロパティは初期化されません。

于 2013-02-22T18:29:17.423 に答える