设为首页 加入收藏

TOP

springMvc+hibernate的web application的构建(二)
2017-10-16 18:20:14 】 浏览:4245
Tags:springMvc hibernate web application 构建
到aop编程,就很舒服了。

 至于刚才提到的引用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做了动态页面效果,很好看,

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

如图:

 

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

 see you lala。。。。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇UML类图 下一篇基于Elasticsearch搜索平台设计

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目