在一個SpringMVC項目中, 連着兩天不管怎么搞都是一直在報錯, 報的最多的就是一個
Servlet.service() for servlet [springDispatcherServlet] in context with path [/項目名] threw exception
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sessionFactory' is defined;
所以一直很納悶, 有時還伴隨着其他的錯誤一起出現, 郁悶了好久
但是一般越難產的問題就越容易解決,
<!-- Spring整合Hibernate的配置 -->
<!-- 配置Hibernate, 配置SessionFactory -->
<bean name="sessionFactory" id="sf" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="ds"></property>
......
此處省略好多代碼
......
</bean>
問題就出在標紅的部分, 與其他同學比較了一下, 其他同學都沒有寫 name="sessionFactory" 這一句卻也能正常運行, 加上這一句之后我的代碼也能正常運行了, 還要再繼續尋找為什么會這樣
剛才又試了一下總算是明白了, 在<bean></bean>這個標簽中, 如果你想自己定義 id 的值, 那就必須加上 name="sessionFactory" 因為系統自己是不認識自定義的 id 的值的, 如果設置成 id="sessionFactory" 系統可以從這個 id 中來獲取這個<bean>, 這個情況應該也適用於其他的<bean>