美文网首页
Spring+SpringMVC+Mybatis搭建

Spring+SpringMVC+Mybatis搭建

作者: 山2017 | 来源:发表于2017-10-11 11:10 被阅读0次

    正文

    在大部分教学课堂中,会把SSH作为最核心的教学内容。 但是,我们在实际应用中发现,SpringMVC可以完全替代Struts,配合注解的方式,编程非常快捷,而且通过restful风格定义url,让地址看起来非常优雅。 另外,MyBatis也可以替换Hibernate,正因为MyBatis的半自动特点,我们程序猿可以完全掌控SQL,这会让有数据库经验的程序猿能开发出高效率的SQL语句,而且XML配置管理起来也非常方便。


    一、开发环境和框架

    1、操作系统:Windows,Linux,mac

    2、开发工具:JDK,Tomcat,intellij idea 或者 eclipse,建议用intellij idea

    3、项目管理:Maven

    4、开发框架:Spring+SpringMVC+Mybatis

    二、理解maven

    maven是一个软件工程(Software Project)管理工具。 对于maven来说,一个软件工程的唯一标识是由开发者(groupId)、生成物(artifactId)、版本(version) 共同决定的。每个工程都有一个打包类型,可以是jar, war, ear 或 pom。打包类型决定了工程最终产物的类型。 其中pom类型用于构件多模块工程。工程之间有两种关系:依赖和聚合

    1、工程依赖关系

    依赖关系的管理是maven最为人称道的地方。一个工程可以依赖多个其他工程, 通过工程的唯一标识(groupId+artifactId+version)可以明确指明依赖的库及版本,而且能够处理 依赖关系的传递。 maven可以指定依赖的作用范围(scope)

    2、工程聚合关系

    前面提到pom类型用于于构件多模块工程,这体现了project之间的一种聚合关系: 将一系列小的模块聚合成整个产品。通过聚合后的工程可以同时管理每个相关模块的构建、清理、文档等工作。 聚合关系通过在子工程中指定一个pom类型的project作为父project来定义。

    三、Spring+SpringMVC+Mybatis简介

    1、Spring

    太强大了,以至于我无法用一个词或一句话来概括它。但与我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。另外spring的aop,事务管理等等都是我们经常用到的。

    3、MyBatis

    如果你问我它跟鼎鼎大名的Hibernate有什么区别?我只想说,他更符合我的需求。第一,它能自由控制sql,这会让有数据库经验的人编写的代码能搞提升数据库访问的效率。第二,它可以使用xml的方式来组织管理我们的sql,因为一般程序出错很多情况下是sql出错,别人接手代码后能快速找到出错地方,甚至可以优化原来写的sql。

    3、SpringMVC

    它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。举个例子,用户在地址栏输入http://网站域名/login,那么springmvc就会拦截到这个请求,并且调用controller层中相应的方法,(中间可能包含验证用户名和密码的业务逻辑,以及查询数据库操作,但这些都不是springmvc的职责),最终把结果返回给用户,并且返回相应的页面(当然也可以只返回json/xml等格式数据)。springmvc就是做前面和后面过程的活,与用户打交道!!

    4、SpringMVC工作原理

    第一步:用户发送请求到前端控制器(DispatcherServlet)

    第二步:前端控制器请求HandlerMapping查找 Handler 【可以根据xml配置、注解进行查找】

    第三步:处理器映射器HandlerMapping向前端控制器返回Handler

    第四步:前端控制器请求处理器适配器去执行Handler

    第五步:处理器适配器去执行Handler

    第六步:处理器适配器执行完成后,Controller返回ModelAndView

    第七步:处理器适配器向前端控制器返回ModelAndView

    ModelAndView是springmvc框架的一个底层对象,包括Model和view

    第八步:前端控制器请求视图解析器去进行视图解析【根据逻辑视图名解析成真正的视图(jsp)】

    第九步:视图解析器向前端控制器返回View

    第十步:前端控制器进行视图渲染【视图渲染即:模型数据(在ModelAndView对象中)填充到request域】

    第十一步:前端控制器向用户响应结果

    四、创建项目(略)

    五、配置开发环境

    第一步:导入项目所需要的库


    第二步:配置dao层

    1、读入数据库连接相关参数(可选)

    2、配置数据连接池

          配置连接属性,可以不读配置项文件直接在这里写死

         配置c3p0,只配了几个常用的

    3、配置SqlSessionFactory对象(mybatis)

    4、扫描dao层接口,动态实现dao接口,也就是说不需要daoImpl,sql和参数都写在xml文件上

    第三步:配置service层

    1、扫描service包所有注解 @Service

    2、配置事务管理器,把事务管理交由spring来完成

    3、配置基于注解的声明式事务,可以直接在方法上@Transaction

    第四步:配置web层

    1、开启SpringMVC注解模式,可以使用@RequestMapping,@PathVariable,@ResponseBody等

    2、对静态资源处理,如js,css,jpg等

    3、配置jsp 显示ViewResolver,例如在controller中某个方法返回一个string类型的”login”,实际上会返回”/WEB-INF/login.jsp”

    4、扫描web层 @Controller

    五、项目目录简介

    resources:存放资源文件,譬如各种的spring,mybatis,log配置文件

    mapper:存放dao中每个方法对应的sql,在这里配置,无需写daoImpl

    spring:这里当然是存放spring相关的配置文件,有dao service web三层

    webapp:这个貌似是最熟悉的目录了,用来存放我们前端的静态资源,如jsp js css

    dao:与数据打交道,可以是数据库操作,也可以是文件读写操作

    model:一般与数据库的表相对应,封装dao层取出来的数据为一个对象,也就是我们常说的         一般只在dao层与service层之间传输

    service:业务逻辑(接口)

    serviceImpl:业务逻辑(实现),实现我们业务接口,一般事务控制是写在这里

    controller:控制器springmvc就是在这里发挥作用的,一般人叫做controller控制器,相当于struts中的action

    相关文章

      网友评论

          本文标题:Spring+SpringMVC+Mybatis搭建

          本文链接:https://www.haomeiwen.com/subject/swbiyxtx.html