錯誤訊息
org.springframework.beans.factory.NoSuchBeanDefinitionException:
No bean named 'sessionFactory' is defined
常見原因
- Spring 設定檔(
beans.xml)中沒有定義 id="sessionFactory" 的 Bean。
@Resource(name="sessionFactory") 的名稱與設定檔中的 Bean ID 不符。
- 設定檔未被類路徑(ClassPath)正確載入。
- 元件掃描範圍遺漏了 sessionFactory 所在的設定。
檢查清單
- 確認
beans.xml 中有類似下面的定義:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
...
</bean>
- 確認
@Resource 的 name 屬性與上述 id 完全一致。
- 確認設定檔路徑正確,且已被
ClassPathXmlApplicationContext 載入。