spring 、spring mvc、mybaits整合_spring+spring mvc +mybaits-程序员宅基地

技术标签: 学习笔记  mvc  ssm  框架整合  

一,spring介绍使用

1、Spring是一个开源的轻量级的应用开发框架,其目的是用于简化企业级应用程序开发,降低开发者的开发难度;
(简化开发:spring对常用的api,比如对JDBC做了封装,使用spring封装的jdbc访问数据库,就不用考虑获取连接、关闭连接等,极大的简化了代码)
2、Spring提供的IoC和AOP应用,可以将组件的耦合度降至最低(即解耦),便于系统日后的维护和升级;
3、Spring为系统提供了一个整体的解决方案,开发者可以利用它本身提供的功能外,也可以与第三方框架和技术整合应用,可以自由选择采用哪种技术进行开发。(比如Spring整合SpringMVC、Spring整合MyBatis、Spring整合Struts2、Spring整合Hibernate、Spring整合Quartz[定时任务处理])
详细的spring可见官方文档https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html
在这里插入图片描述

二,spring mvc介绍使用

springmvc是spring框架的一个模块,spring和springmvc无需中间整合层整合,是一个基于mvc的web框架
执行原理:
在这里插入图片描述
(1).用户发送请求 至 前端控制器(DispatcherServlet);
提示:DispatcherServlet的作用:接收请求,调用其它组件处理请求,响应结果,相当于转发器、中央处理器,是整个流程控制的中心
(2).前端控制器(DispatcherServlet)收到请求后调用处理器映射器(HandlerMapping)
处理器映射器(HandlerMapping)找到具体的Controller(可以根据xml配置、注解进行查找),并将Controller返回给DispatcherServlet;
(3).前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)。处理器适配器经过适配调用具体的Controller;(Controller–> service --> Dao --> 数据库)
Controller执行完成后返回ModelAndView,
提示:Model(模型数据,即Controller处理的结果,Map) View(逻辑视图名,即负责展示结果的JSP页面的名字)
处理器适配器(HandlerAdapter)将controller执行的结果(ModelAndView)返回给前端控制器(DispatcherServlet);
(4).前端控制器(DispatcherServlet)将执行的结果(ModelAndView)传给视图解析器(ViewReslover)
视图解析器(ViewReslover)根据View(逻辑视图名)解析后返回具体JSP页面
(5).前端控制器(DispatcherServlet)根据Model对View进行渲染(即将模型数据填充至视图中);
前端控制器(DispatcherServlet)将填充了数据的网页响应给用户。
spring mvc 详细使用可参见https://www.cnblogs.com/sunniest/p/4555801.html

三、ssm整合

建议使用maven工程,这样方便jar包的管理
整合三大框架重点步骤为:
spring-configs.xml
spring-mybatis.xml
spring-web.xml文件的配置,具体详细配置可见官网的入门案例
mybatis3 http://www.mybatis.org/mybatis-3/zh/configuration.html
spring https://spring.io/
mybatis-spring http://www.mybatis.org/spring/
项目工程目录结构
在这里插入图片描述
具体目录结构可根据项目需求不同而改变,是遵循mvc设计模式

configs.properties为数据源配置文件,需要在spring-configs.xml中引入

log4j.properties为log4j的配置文件,便于运行时打印日志信息,具体配置文件可根据需求配置要打印的信息

spring-confgs.xml为核心配置文件,它包含了spring-model.xml和spring-web.xml,便于后期的管理和维护,可用import标签引入(注意路径)

spring-model.xml中包含了数据源的配置(spring-datasource.xml)和spring整合mybaits的配置(spring-mybatis.xml)

spring-web.xml为spring mvc默认配置,视图解析器…

配置文件信息大同小异,具体可以参见上面提到的官网或者https://blog.csdn.net/u012751272/article/details/75332443

下面来介绍Controller Service Dao Entity(Pojo)包的具体功能
(查了一下,这玩意原来可逆向工程 )https://blog.csdn.net/qq_39992106/article/details/78728278
Controller 包
controller,译为“控制”,“控制器”,“管理者”的意思,控制层的具体功能为处理客户端发送的请求。
Service 包
service 译为“服务”,service层就是做业务的,业务层实现代码
Dao 包
Data Access Objects,数据持久层 ,避免了业务代码中混杂JDBC调用语句,使得业务落实实现更加清晰,对数据访问的一个接口
Entity包(POJO)
存放实体,封装实体类,用于封装数据
在这里插入图片描述
这四层为mvc设计模式的主要表现,其他可根据项目具体业务而定

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42182945/article/details/88427945

智能推荐

ubuntu安装nginx详细步骤_ubuntu 安装nginx cd.current_salt[0] = ~salt[0];-程序员宅基地

文章浏览阅读2k次,点赞2次,收藏7次。1.安装依赖包//一键安装上面四个依赖sudo apt-get install gcc zlib zlib-devel pcre-devel openssl openssl-devel2.下载并解压安装包//创建一个文件夹cd /usr/localmkdir nginxcd nginx//下载tar包wget http://nginx.org/download/nginx-1.13.7.tar.gztar -xvf nginx-1.13.7.tar.gz3.安装nginx/_ubuntu 安装nginx cd.current_salt[0] = ~salt[0];

k8s基于Ingress-nginx实现灰度发布-程序员宅基地

文章浏览阅读1.6k次。微信公众号搜索 DevOps和k8s全栈技术 ,即可关注公众号,也可扫描文章最后的二维码关注公众号,每天会分享技术文章供大家阅读参考哈~前言Ingress-Nginx是一个K8S ing..._"nginx.ingress.kubernetes.io/canary-by-header-value: \"vip"

FFmpeg 源码编译保姆级教程_avx512 ffmpeg-程序员宅基地

文章浏览阅读695次。FFmpeg从入门到放弃官网下载源码包下载地址: https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2链下载地址: 本地资源暂时未上传后续在修改上传解压解压 : ffmpeg-snapshot-git.tar.bz2tar -zxvf ffmpeg-snapshot-git.tar.bz2cd ffmpeg编译linux 默认基础编译及其效果ubuntu@VM-192-8-ubuntu:~/ffmpeg$ ./configure -_avx512 ffmpeg

android 开发生成csr,并把私钥和ca认证的crt合并成p12_android csr-程序员宅基地

文章浏览阅读2.4k次。相关文章阅读记录:JAVA解析各种编码密钥对(DER、PEM、openssh公钥)https://blog.csdn.net/jiftlixu/article/details/19836405【Java密码学】使用Bouncy Castle生成数字签名、数字信封https://www.cnblogs.com/qiuxiangmuyu/p/6195215.htmlJava生成CS..._android csr

c++基础知识杂记(Day4类与对象)-程序员宅基地

文章浏览阅读768次。1.使用构造函数。显式调用: Stock food = Stock("adasdas",2250);隐式调用:Stock food("adasdas",2250);使用动态内存分配调用:Stock *pstock = new Stock("adasdas",2250);注意:无法使用对象来调用构造函数,因为在构造函数构造出对象前,对象是不存在的。因此,构造函数被用来创建对象,而不是通过对象来调用。2.const成员函数。声明:void show() const;定义:void stack

FutureTask设置方法执行的超时时间_futuretask 超时-程序员宅基地

文章浏览阅读5k次。import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.FutureTask;import java.util.concurrent.TimeUnit;import java.util.concurrent.TimeoutEx..._futuretask 超时

随便推点

5G下行候选新波形简介(2)--W-OFDM与F-OFDM_w/f-ofdm-程序员宅基地

文章浏览阅读4.6k次。见个人博客: https://ziyubiti.github.io/2018/04/04/5gnewwave2/_w/f-ofdm

解决JSP自动生成彩色验证码的问题_if (fc > 255) fc = 255; if (bc > 255) bc = 255; in-程序员宅基地

文章浏览阅读950次。image.jsp Color getRandColor(int fc,int bc){Random random = new Random();if(fc>255) fc=255;if(bc>255) bc=255;int r=fc+random.nextInt(bc-fc)_if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc random.nextint(bc

VisionPro与C#联合编程 --- 开机自启动、多相机方案加载_visionpro 设置开机运行-程序员宅基地

文章浏览阅读4.8k次,点赞5次,收藏4次。1、设置相机和网络适配器的ip地址为静态ip ,如果多相机多网卡,则最好不同的相机设置不同的网段。2、利用Vpp应用程序,和windows的任务计划程序,实现开机自动(或延时)启动Vpp程序。..._visionpro 设置开机运行

华为SNS2624光纤交换机出厂自带8端口激活_华为sns2624光纤交换机配置手册-程序员宅基地

文章浏览阅读2.8k次。华为SNS2624光纤交换机默认管理口IP:10.77.77.77默认账号密码:admin/Huawei12#$登录光交,输入命令switchshow,可以看到没有一个端口激活输入以下命令激活8个端口SNS2624:admin> licenseport --reserve 0-7SNS2624:admin> portenable 0-7再次输入命令switchshow,就可以看到0-7端口激活了。..._华为sns2624光纤交换机配置手册

微动探测原理及仪器介绍-程序员宅基地

文章浏览阅读1.3w次,点赞4次,收藏16次。微动探测原理及仪器介绍1、微动探测原理1.1 基本理论微动是由体波和面波组成,其中微动能量的百分之七十以上都来自于面波,并且它与体波的主要区别是在不均匀的介质中传播时面波会发生频散,而体波不存在频散现象,因此面波是微动探测的主要对象。对于介质的弹性参数(如横波速度、层薄厚、压缩波速度、密度等),面波传播速度相对比较敏感,特别是对横波的敏感性很高,因此可以利用面波来反演横波速度。在时间和空间上,微动信号具有以下特性:高度变化、无规律性、无重复性等,有研究发现全世界各处记录的微动信号都有相似_微动探测

C语言实现整数质因数分解_正整数分解质因数c语言-程序员宅基地

文章浏览阅读482次。在C语言中,我们可以编写程序来将给定的正整数分解为其质因数。在本文中,我将展示一个简单的C语言程序,用于分解正整数的质因数,并提供相应的源代码和解析。希望通过这个示例程序和解析,您能够理解如何在C语言中实现正整数的质因数分解。这是一个基本的算法,可以用于解决数论和因数分解相关的问题。在函数内部,我们使用一个循环来迭代从2到给定正整数的所有可能的因数。是否等于1,如果不等于1,则打印" × ",表示这个因数还没有完全分解。在这个例子中,我们将正整数84分解为其质因数:2、2、3和7。如果可以整除,我们将。_正整数分解质因数c语言

推荐文章

热门文章

相关标签