在一个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>