我用的是MyEclipse2015,tomcat8.0,jdk1.8
问题一及解决方法:
我在XXXdaoImpl中 使用了extends HibernateDaoSupport ,所以在配置applicationContext.xml中的 将sessionFactory注入DaoImpl类时
<bean id="logind" class="cn.user.dao.LoginDaoImpl">
<property name="sessionFactory"> <!--这里的sessionFactory会报错,原因下面解释-->
<ref bean="sessionFactory" />
</property>
</bean>
因为我并没有在DaoImpl中注入SessionFactoryBean,当然也没有SessionFactory的get set 方法,所以会报错;而extends HibernateDaoSupport 提供的方法中
this.getHibernateTemplate()相当于SessionFactory.getSession(),这里面都有对应的简单的增删改查方法
继承后的applicationContext.xml 中的配置应该为(类似上面的xml配置)
<bean name="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean name="logind" class="cn.user.dao.LoginDaoImpl">
<property name="hibernateTemplate" ref="hibernateTemplate"/>
</bean>
当然,我也查到了 很多采取注解的方式将SessionFactory注入到DaoImpl类中,这里提供一些方便的链接
http://langgufu.iteye.com/blog/1771115
http://blog.csdn.net/yang_ai/article/details/52160314
http://www.cnblogs.com/likailan/p/3460301.html
应该写得比较详细了
问题二及解决方法:
遇到的另一个问题是,建项目使用的版本搭配
然后添加框架包的时候,因为我之前全部用的是MyEclipse2015提供的struts2.1,spring4.1,hibernate4.3,出现了一个 Unable read XML,大概是这样一个错误,反正意思就是不能读取到XML吧,查了一下,是因为版本问题,再建了一个工程,将Hibernate框架包的版本改成3.3就可以了,如图
这样 S2SH环境就没问题了。
欢迎读者批评指导!