SSH最新框架整合-spring5.0.8+hibernate5.3.2+struts2.5.16(JDK9)

这几天学习了下SSH框架,(如果现在还想学SSH框架的劝退,原因呢自己百度就知道了),发现在整合的过程中出现各种问题,网上也没有比较好的整合博客,基本都是过时的博客不太适合学习(主要是框架更新较快,会发生巨大变化,也许几年后你看到这篇博客时它也已经过时了),现在记录一下我是怎么整合的,以及在整合过程中所遇到的问题,现在大家照着做基本是没有问题,因为很多坑我已经踩过了,我也会给大家一一说明的,废话少说,直接开始。

第一步就是引入jar包(最好大家和我的版本基本保持一致):

struts2包:

hibernate包(required包中):

spring包:导入spring所有的jar包(去掉资源包和文档包)

如果使用的JDK9以上需要导入另外四个jar包。

这四个jar包可以在我的博客里下载:https://blog.csdn.net/weixin_41660508/article/details/82591621

以及其他jar包:

下面是整合后所有的jar包,大家可以看看有没有遗漏的。

注意如果缺少jar包就百度下载,千万不能缺少!!!

下面就是配置文件了,首先配置web.xml:

接下来配置struts.xml文件:

最后配置applicationContext.xml

大家自主配置开启事务的配置吧,百度一下就知道了。

再说一下我遇到的问题:

采用SSH框架后,hibernate的getCurrentSession就不能使用了,dao层需要继承HibernateDaoSupport并在类上加上@Transactional

获取session可以使用:Session session=getHibernateTemplate().getSessionFactory().openSession();或者Session session=getHibernateTemplate().getSessionFactory().getCurrentSession();

dao的bean层需要注入sessionFactory:

记住使用SSH框架后dao千万不要使用new来创建,不然会出现空指针,无法注入sessionFactory;

如果遇到其他问题可以百度解决。按照我这有配置的基本没有问题,再者就是编码问题了。


我打算以后在这篇博客长期更新,将自己踩过的坑,有价值的问题给大家列出来,供大家参考。

刚刚遇到一个问题,可能是自己粗心的原因,在整合项目时有些地方没改,导致出现一些难以发现的bug,那么简单的说一下:

在使用Session session=getHibernateTemplate().getSessionFactory().openSession();的时候一定要加上session.close()关闭session不然项目会出现一个难以发现的bug。

在使用Session session=getHibernateTemplate().getSessionFactory().getCurrentSession();的时候是不能加session.close()的,spring会自动帮我们关闭的。

猜你喜欢

转载自blog.csdn.net/weixin_41660508/article/details/82985742