设为首页 加入收藏

TOP

SpringMVC+Hibernate的Web Application构建实践(二)
2017-12-06 17:35:58 】 浏览:436
Tags:SpringMVC Hibernate Web Application 构建 实践
就很舒服了。


 至于刚才提到的引用hibernate.cfg.xml,也和一般的hibernate配置是一样的。只不过这里经过spring配置后,所有的hibernate资源都交给了spring框架。


hibernate.cfg.xml由于图片太长,截不完所有的图片,截图了部分,如下:



可以看见我用c3p0来作为我的数据库连接池的实现的。


由于我们这个还是web程序,所以初始化spring的初始化工作需要交给web.xml。同时因为我还实现了springMvc框架,所以web程序的


所有请求转发给MVC的请求分发器的初始化工作也应该交给web.xml。还有比较重要的一点是,spring支持多个配置文件,所以个人喜欢将


mvc的有关配置单独放在一个文件spring-action.xml中,这个spring-action.xml记录了具体的分发配置和mvc返回ModelAndView对象所对应页面的相对路径前缀


和文件后缀名,spring-action.xml如下:



web.xml文件如下:



另外由于已经成为了web程序,尤其是因为SimpleUrlHandlerMapping类和InternalResourceViewResolver跟web有关,所以,就不能够


java代码中初始化spring了,除非注释掉跟web有关的spring配置,所以应该通过tomcat服务器来做初始化spring的工作。


另外要记得将所有有关的class文件,jar包,jsp文件都放在webContent下,服务器才能正常运行不报错。


当然代码中也基本都是面向接口编程的,可以看我的文件目录看得出:



另外关于hibernate对象的映射我是通过注解的方式映射的,实际上还可以xml文件配置映射关系也可以。


映射可以从下图看出:



关于dao层同样是面向借口的编程,如图:



关于dao层的操作,只要继承刚才的单例会话工厂类就可以得到响应的会话,如图:



要注意的是session我并没有手动去关闭,因为getCurrentSessionOfHUtil中获取session的方式是


getCurrentSession(),这种方式是会自动关闭会话的,只要你的事务提交了或者回滚了都会帮你执行。


当你开启session后就可以按照你hibernate编程的方式来做了。这样就很好的将hibernate融入再spring框架中了。


 


另外mvc在spring都配置好了的情况下是很容易引进的,只要你的Controller类也放到spring容器中,以及Controller类继承好AbstractController类


就可以了。当然,前面的spring-action.xml加载和web.xml的初始化工作是少不了的。


mvc的某个方法如下:



当然框架的层级结构也是分层的,dao层查数据库,service层调用dao层,action层调用service。


目录结构可以看出这点:



最后我们来演示下框架是否搭建成功。


先启动tomcat,如图:



并没有报错。然后我们去浏览器客户端输入


http://localhost:8080/springMvcOrm/anonymous.mvc?method=add&contentName=bokeyuan,如图:



 


在看看后台的打印信息:



可以看见既有aop拦截器,也执行了数据库操作。


最后我们看下数据库是否存下了某个数据,因为刚才的add方法是存一个数据:


可以看见数据也进入了数据库


同时也返回了一个页面。


至此,基于SpringMVC+Hibernate+MySQL的Web程序框架搭建完毕。


另外,像http://localhost:8080/springMvcOrm/anonymous.mvc这种没有方法参数的请求,我也设定了一个默认的方法,也可以进入后台。


最后也返回了一个页面,效果如下图,当然最后这个页面是我在网上找的,一个单纯的css做了动态页面效果,很好看,


但不知道作者是谁,不知道用这个页面加到我的项目中,这个作者会不会砍我。(勿怪,原作者看到这个页面可以联系我,实际上我是想向你学一些前段的特效,嘻嘻。)


如图:



大家有什么不明白的,可以留言,我有空会相继回复,也欢迎大家批评指正。


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Kotlin Native新增Objective-C互.. 下一篇Mybatis的搭建和Spring注入方式

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目