CN105843609A - 一种基于Spring和MyBatis的MVC框架 - Google Patents
一种基于Spring和MyBatis的MVC框架 Download PDFInfo
- Publication number
- CN105843609A CN105843609A CN201610155392.8A CN201610155392A CN105843609A CN 105843609 A CN105843609 A CN 105843609A CN 201610155392 A CN201610155392 A CN 201610155392A CN 105843609 A CN105843609 A CN 105843609A
- Authority
- CN
- China
- Prior art keywords
- spring
- controller
- mybatis
- processor
- view
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013507 mapping Methods 0.000 claims abstract description 9
- 230000009471 action Effects 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 12
- 235000010627 Phaseolus vulgaris Nutrition 0.000 claims description 6
- 244000046052 Phaseolus vulgaris Species 0.000 claims description 6
- 238000002347 injection Methods 0.000 claims description 4
- 239000007924 injection Substances 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 13
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于Spring和MyBatis的MVC框架,属于计算机软件技术领域,前端控制器是DispatcherServlet;应用控制器拆为处理器映射器(Handler Mapping)和视图解析器(View Resolver),处理器映射器(Handler Mapping)进行处理器管理,视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口的实现。本发明基于MVC等成熟思想建立开发平台,进行更简洁的Web层的开发。
Description
技术领域
本发明涉及计算机软件技术领域,具体地说是一种基于Spring和MyBatis的MVC框架。
背景技术
各公司WEB框架多种多样,通过对公司各WEB开发框架的调研和现状分析,得出以下结论:和公司的研发队伍、产品线比较,Web开发框架及版本偏多;多版本开发框架,不利于开发框架公用组件的统一完善及复用;多版本开发框架、跨产品线、跨项目的开发人员调动,增加了开发框架的学习成本;各开发框架下公用组件,都是以项目为导向封装,或多或少都有些优缺点,缺乏统筹的设计和组件间的横向联系;各产品线不同的开发框架,给公司运作大项目,产品打包销售后的实施工作带来一定的工作量和困难;某些特殊的项目需要一套适用面向互联网的更轻量级、灵活的WEB开发框架。
发明内容
本发明的技术任务是提供一种基于Spring和MyBatis的MVC框架,解决WEB框架多缺乏统筹设计成本高的问题,基于MVC等成熟思想建立开发平台,开发过程尽量简化,减少业务相关的配置文件。
本发明解决其技术问题所采用的技术方案是:
一种基于Spring和MyBatis的MVC框架,前端控制器是DispatcherServlet;应用控制器拆为处理器映射器(Handler Mapping)和视图解析器(View Resolver),处理器映射器(Handler Mapping)进行处理器管理,视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口的实现:
采用Spring-DispatcherServlet进行匹配请求的拦截;
考虑到URL的友好性,基于REST风格,通过DispatcherServlet配置.htm作为服务映射;例如:http://127.0.0.1:7023/employee/init.htm;
采用注解的形式进行bean对象的注入及声明式事务处理;
CMD层页面直接跳转至jsp页面;
DAO层采用MyBatis方式进行数据库操作;
日志采用logback+slf4j,效率比log4j高;
采用Spring的CommonsMultipartResolver进行文件上传操作;
业务层采用Spring注解的声明式事务。
进一步的,Controller接口仅包含ModelAndView handleRequest(request,response)方法。
进一步的,页面控制器/动作/处理器也可以是任何的POJO类。
本发明的一种基于Spring和MyBatis的MVC框架与现有技术相比,具有以下有益效果:
采用主流开源架构,架构有专业的团队进行维护、升级,免去后期框架级维护工作量;
Spring MVC的controller+command object模式更加安全,在Spring MVC中,controller和command object是两个独立的类,自动数据绑定只发生在command object上,对controller没有影响;
URL符合互联网的访问风格,如http://ip/employee/init.htm;
架构简单易用,网上资料丰富,开发人员学习难度低;
MyBatis代码和sql分离,sql写在xml里,便于统一管理和优化;解除sql与程序代码的耦合;
MyBatis提供xml标签,提供映射标签,支持对象与数据库的ORM字段关系映射,支持编写动态sql。
附图说明
图1是SpringMVC-MyBatis整体框图;
图2是SpringMVC架构图;
图3是MyBatis架构图。
具体实施方式
下面结合附图对本发明作进一步说明。
一种基于Spring和MyBatis的MVC框架,前端控制器是DispatcherServlet;应用控制器拆为处理器映射器(Handler Mapping)和视图解析器(View Resolver),处理器映射器(Handler Mapping)进行处理器管理,视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request,response)方法)的实现(也可以是任何的POJO类):
采用Spring-DispatcherServlet进行匹配请求的拦截;
考虑到URL的友好性,基于REST风格,通过DispatcherServlet配置.htm 作为服务映射;例如:http://127.0.0.1:7023/employee/init.htm;
采用注解的形式进行bean对象的注入及声明式事务处理;
CMD层页面直接跳转至jsp页面;
DAO层采用MyBatis方式进行数据库操作;
日志采用logback+slf4j,效率比log4j高;
采用Spring的CommonsMultipartResolver进行文件上传操作;
业务层采用Spring注解的声明式事务。
具体执行步骤如下:
首先用户发送请求→前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;
页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);
前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;
前端控制器再次收回控制权,将响应返回给用户。
如附图所示:
框架级配置
mvcController的配置,通过DispatcherServlet进行请求分发;
.htm作为服务映射;
URL格式:http://127.0.0.1:7023/employee/init.htm;
配置注解默认扫描的包路径、开启MVC注解功能、不限制访问应用中的静 态资源;
<!-添加注解默认扫描的包路径-->
<context:component-scan base-package=″inspur.tax″/>
<!-开启spring MVC注解功能,完成请求和注解POJO的映射-->
<mvc:annotation-driven/>
<!-配置指定可访问的静态资源-->
<mvc:default-servlet-handler/>
dataSource-JNDI配置;
Spring事务注解配置;
使用CommonsMultipartResolver控制文件上传功能,支持批量上传。
CMD层配置
@Controller排在类注解的第一位,表明某类是一个controller;
@RequestMapping:请求路径映射,如果标注在某个controller的类级别上,则表明访问此类路径下的方法都要加上其配置的路径;最常用是标注在方法上,表明哪个具体的方法来接受处理某次请求;
@Resource:对象注入注解,代替了Spring配置文件中对bean对象的注入;
@Repository用于将数据访问层(DAO层)的类标识为Spring Bean
如上:RequestMapping标注在类级别上,表明访问入口服务名为employee,标注在方法上,表明对外发布的方法名为init
JSP表单数据直接通过request进行获取;
CMD可以通过Model对象,将数据传递给JSP表单。
DAO-MyBatis配置
DAO层采用MyBatis进行数据库操作,通过MapperScannerConfigurer配置map文件的自动扫描。
为了更好的规范开发流程,引入了mybatis-config.xml,主要是针对BEAN对象返回的字段进行格式转换,由大写字段改为驼峰格式。
DAO层为接口,无需编写实现类。
采用@Transactional注释进行声明式事务控制,可自由定义事务回滚对应的异常类型。
Claims (3)
1.一种基于Spring和MyBatis的MVC框架,其特征在于, 前端控制器是DispatcherServlet;应用控制器拆为处理器映射器(Handler Mapping) 和视图解析器(View Resolver),处理器映射器(Handler Mapping)进行处理器管理,视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口的实现:
采用Spring-DispatcherServlet进行匹配请求的拦截;
基于REST风格,通过DispatcherServlet配置.htm作为服务映射;
采用注解的形式进行bean对象的注入及声明式事务处理;
CMD层页面直接跳转至jsp页面;
DAO层采用MyBatis方式进行数据库操作;
日志采用logback+slf4j,效率比log4j高;
采用Spring的CommonsMultipartResolver进行文件上传操作;
业务层采用Spring注解的声明式事务。
2.根据权利要求1所述的一种基于Spring和MyBatis的MVC框架,其特征在于Controller接口仅包含ModelAndView handleRequest(request, response) 方法。
3.根据权利要求1所述的一种基于Spring和MyBatis的MVC框架,其特征在于页面控制器/动作/处理器也可以是任何的POJO类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610155392.8A CN105843609A (zh) | 2016-03-18 | 2016-03-18 | 一种基于Spring和MyBatis的MVC框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610155392.8A CN105843609A (zh) | 2016-03-18 | 2016-03-18 | 一种基于Spring和MyBatis的MVC框架 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105843609A true CN105843609A (zh) | 2016-08-10 |
Family
ID=56587377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610155392.8A Pending CN105843609A (zh) | 2016-03-18 | 2016-03-18 | 一种基于Spring和MyBatis的MVC框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105843609A (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446023A (zh) * | 2016-08-29 | 2017-02-22 | 江苏数加数据科技有限责任公司 | 基于AngularJS和Bootstrap实现的双公示生产数据前端展示系统及方法 |
CN106815011A (zh) * | 2016-12-09 | 2017-06-09 | 深圳市华力特电气有限公司 | 一种辅助编程方法和系统 |
CN107220294A (zh) * | 2017-04-26 | 2017-09-29 | 努比亚技术有限公司 | 一种请求处理的方法和终端 |
CN107608673A (zh) * | 2017-09-15 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种通过Servlet处理Rest请求的方法及装置 |
CN107705079A (zh) * | 2017-11-08 | 2018-02-16 | 厦门旺集信息科技有限公司 | 物流仓储管理系统处理方法以及跨境电商交易方法 |
CN108075922A (zh) * | 2016-11-14 | 2018-05-25 | 普天信息技术有限公司 | 一种电信网络管理系统 |
CN108089904A (zh) * | 2017-12-21 | 2018-05-29 | 上海新案数字科技有限公司 | 一种展示页面扩展方法及设备 |
CN108363566A (zh) * | 2018-01-30 | 2018-08-03 | 中国平安人寿保险股份有限公司 | 一种项目开发过程中文件配置方法、智能终端及存储介质 |
CN108710504A (zh) * | 2017-04-10 | 2018-10-26 | 北大方正集团有限公司 | 数据库操作方法及装置 |
CN108763934A (zh) * | 2018-05-30 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、存储介质、服务器 |
CN108881373A (zh) * | 2018-04-27 | 2018-11-23 | 安徽四创电子股份有限公司 | 一种基于mvc框架的前端数据流处理方法 |
CN109254916A (zh) * | 2018-08-30 | 2019-01-22 | 郑州云海信息技术有限公司 | 一种基于Spring依赖注入的可视化RestFul接口测试的方法及服务器 |
CN109344656A (zh) * | 2018-11-29 | 2019-02-15 | 杭州涂鸦信息技术有限公司 | 一种数据库的数据加密/解密方法、装置和设备 |
CN109558119A (zh) * | 2018-11-09 | 2019-04-02 | 杭州安恒信息技术股份有限公司 | 一种基于Java的Web框架遍历请求地址的方法 |
WO2019127864A1 (zh) * | 2017-12-28 | 2019-07-04 | 平安科技(深圳)有限公司 | 电子装置、基于springmvc的数据接口及其说明自动生成方法及存储介质 |
CN110069297A (zh) * | 2019-03-28 | 2019-07-30 | 平安科技(深圳)有限公司 | 基于Spring MVC的异常处理方法、装置、计算机设备和存储介质 |
CN111143451A (zh) * | 2019-12-16 | 2020-05-12 | 中国航空综合技术研究所 | 用于分层架构设计的ssm框架设计方法 |
CN111259067A (zh) * | 2020-01-21 | 2020-06-09 | 褚晶晶 | 一种基于Spring实现DAO接口的方法、装置及设备 |
JP2020109613A (ja) * | 2019-01-02 | 2020-07-16 | 哈爾濱鴻徳亦泰数碼科技有限責任公司 | 4層アーキテクチャに基づくスマートな灌漑エリアeプラットフォーム及びデータ処理方法 |
CN113111239A (zh) * | 2021-04-08 | 2021-07-13 | 北京联创新天科技有限公司 | 一种通用数据库操作方法、装置及其存储介质 |
CN114238527A (zh) * | 2022-02-24 | 2022-03-25 | 安翰科技(武汉)股份有限公司 | 基于对象关系映射的数据处理方法和数据处理装置 |
US11531733B2 (en) | 2019-03-18 | 2022-12-20 | Fuzhou Boe Optoelectronics Technology Co., Ltd. | Authority filter method and authority filter device |
-
2016
- 2016-03-18 CN CN201610155392.8A patent/CN105843609A/zh active Pending
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446023A (zh) * | 2016-08-29 | 2017-02-22 | 江苏数加数据科技有限责任公司 | 基于AngularJS和Bootstrap实现的双公示生产数据前端展示系统及方法 |
CN108075922A (zh) * | 2016-11-14 | 2018-05-25 | 普天信息技术有限公司 | 一种电信网络管理系统 |
CN106815011A (zh) * | 2016-12-09 | 2017-06-09 | 深圳市华力特电气有限公司 | 一种辅助编程方法和系统 |
CN108710504A (zh) * | 2017-04-10 | 2018-10-26 | 北大方正集团有限公司 | 数据库操作方法及装置 |
CN107220294A (zh) * | 2017-04-26 | 2017-09-29 | 努比亚技术有限公司 | 一种请求处理的方法和终端 |
CN107608673A (zh) * | 2017-09-15 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种通过Servlet处理Rest请求的方法及装置 |
CN107705079A (zh) * | 2017-11-08 | 2018-02-16 | 厦门旺集信息科技有限公司 | 物流仓储管理系统处理方法以及跨境电商交易方法 |
CN108089904A (zh) * | 2017-12-21 | 2018-05-29 | 上海新案数字科技有限公司 | 一种展示页面扩展方法及设备 |
CN108089904B (zh) * | 2017-12-21 | 2021-11-16 | 上海七十迈数字科技有限公司 | 一种展示页面扩展方法及设备 |
WO2019127864A1 (zh) * | 2017-12-28 | 2019-07-04 | 平安科技(深圳)有限公司 | 电子装置、基于springmvc的数据接口及其说明自动生成方法及存储介质 |
CN108363566A (zh) * | 2018-01-30 | 2018-08-03 | 中国平安人寿保险股份有限公司 | 一种项目开发过程中文件配置方法、智能终端及存储介质 |
CN108881373A (zh) * | 2018-04-27 | 2018-11-23 | 安徽四创电子股份有限公司 | 一种基于mvc框架的前端数据流处理方法 |
CN108881373B (zh) * | 2018-04-27 | 2021-07-06 | 安徽四创电子股份有限公司 | 一种基于mvc框架的前端数据流处理方法 |
CN108763934A (zh) * | 2018-05-30 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、存储介质、服务器 |
CN108763934B (zh) * | 2018-05-30 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 数据处理方法及装置、存储介质、服务器 |
CN109254916A (zh) * | 2018-08-30 | 2019-01-22 | 郑州云海信息技术有限公司 | 一种基于Spring依赖注入的可视化RestFul接口测试的方法及服务器 |
CN109558119A (zh) * | 2018-11-09 | 2019-04-02 | 杭州安恒信息技术股份有限公司 | 一种基于Java的Web框架遍历请求地址的方法 |
CN109558119B (zh) * | 2018-11-09 | 2022-12-27 | 杭州安恒信息技术股份有限公司 | 一种基于Java的Web框架遍历请求地址的方法 |
CN109344656A (zh) * | 2018-11-29 | 2019-02-15 | 杭州涂鸦信息技术有限公司 | 一种数据库的数据加密/解密方法、装置和设备 |
JP2020109613A (ja) * | 2019-01-02 | 2020-07-16 | 哈爾濱鴻徳亦泰数碼科技有限責任公司 | 4層アーキテクチャに基づくスマートな灌漑エリアeプラットフォーム及びデータ処理方法 |
US11531733B2 (en) | 2019-03-18 | 2022-12-20 | Fuzhou Boe Optoelectronics Technology Co., Ltd. | Authority filter method and authority filter device |
CN110069297A (zh) * | 2019-03-28 | 2019-07-30 | 平安科技(深圳)有限公司 | 基于Spring MVC的异常处理方法、装置、计算机设备和存储介质 |
CN111143451A (zh) * | 2019-12-16 | 2020-05-12 | 中国航空综合技术研究所 | 用于分层架构设计的ssm框架设计方法 |
CN111259067A (zh) * | 2020-01-21 | 2020-06-09 | 褚晶晶 | 一种基于Spring实现DAO接口的方法、装置及设备 |
CN111259067B (zh) * | 2020-01-21 | 2023-06-06 | 褚晶晶 | 一种基于Spring实现DAO接口的方法、装置及设备 |
CN113111239A (zh) * | 2021-04-08 | 2021-07-13 | 北京联创新天科技有限公司 | 一种通用数据库操作方法、装置及其存储介质 |
CN113111239B (zh) * | 2021-04-08 | 2024-03-29 | 北京联创新天科技有限公司 | 一种通用数据库操作方法、装置及其存储介质 |
CN114238527A (zh) * | 2022-02-24 | 2022-03-25 | 安翰科技(武汉)股份有限公司 | 基于对象关系映射的数据处理方法和数据处理装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105843609A (zh) | 一种基于Spring和MyBatis的MVC框架 | |
US10929116B2 (en) | Generation of dynamic software models using input mapping with feature definitions | |
US7761406B2 (en) | Regenerating data integration functions for transfer from a data integration platform | |
TW201810076A (zh) | 前端用戶行為統計方法及裝置 | |
US9043750B2 (en) | Automated generation of two-tier mobile applications | |
US8826248B2 (en) | Enabling computational process as a dynamic data source for bi reporting systems | |
Benavides et al. | Fama | |
US9141251B2 (en) | Techniques for guided access to an external distributed file system from a database management system | |
US10725799B2 (en) | Big data pipeline management within spreadsheet applications | |
CN104731606A (zh) | 基于识别抓取技术实现企业应用集成管理的系统及方法 | |
CN105718601A (zh) | 一种业务动态集成模型及其应用方法 | |
CN104270443B (zh) | 一种能够动态解析Web应用的云计算系统及方法 | |
da Silva et al. | An experience report from the migration of legacy software systems to microservice based architecture | |
US20200097260A1 (en) | Software application developer tools platform | |
Ozyurt et al. | Foundry: a message-oriented, horizontally scalable ETL system for scientific data integration and enhancement | |
US20110289041A1 (en) | Systems and methods for managing assignment templates | |
KR102244887B1 (ko) | Sql 쿼리 추천 방법 및 시스템 | |
CN115169578A (zh) | 一种基于元宇宙数据标记的ai模型生产方法及系统 | |
Kiswani et al. | Using metadata in optimizing the design and development of enterprise information systems | |
Aitken et al. | The planets testbed: Science for digital preservation | |
Kumar et al. | Design of an iOS app architecture for cotton plant disease detection using artificial intelligence and machine learning techniques | |
Sousa et al. | A case for a living enterprise architecture in a private bank | |
KR20200057173A (ko) | 소프트웨어 설계서 생성 시스템 및 방법 | |
US20240241777A1 (en) | Artificial intelligence based integration frameworks | |
US11809919B2 (en) | Central event catalog |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160810 |