CN105843609A - 一种基于Spring和MyBatis的MVC框架 - Google Patents

一种基于Spring和MyBatis的MVC框架 Download PDF

Info

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
Application number
CN201610155392.8A
Other languages
English (en)
Inventor
宫志方
程林
杨培强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Group Co Ltd
Original Assignee
Inspur Software Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Software Group Co Ltd filed Critical Inspur Software Group Co Ltd
Priority to CN201610155392.8A priority Critical patent/CN105843609A/zh
Publication of CN105843609A publication Critical patent/CN105843609A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software 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框架
技术领域
本发明涉及计算机软件技术领域,具体地说是一种基于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类。
CN201610155392.8A 2016-03-18 2016-03-18 一种基于Spring和MyBatis的MVC框架 Pending CN105843609A (zh)

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)

* Cited by examiner, † Cited by third party
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

Cited By (28)

* Cited by examiner, † Cited by third party
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