CN104484182A - 一种弹性可扩展的多数据源mvc模型架构 - Google Patents
一种弹性可扩展的多数据源mvc模型架构 Download PDFInfo
- Publication number
- CN104484182A CN104484182A CN201410831700.5A CN201410831700A CN104484182A CN 104484182 A CN104484182 A CN 104484182A CN 201410831700 A CN201410831700 A CN 201410831700A CN 104484182 A CN104484182 A CN 104484182A
- Authority
- CN
- China
- Prior art keywords
- layer
- data source
- mvc
- model
- source
- 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
- 238000012545 processing Methods 0.000 claims abstract description 6
- 238000013461 design Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 7
- 235000006719 Cassia obtusifolia Nutrition 0.000 claims description 6
- 235000014552 Cassia tora Nutrition 0.000 claims description 6
- 244000201986 Cassia tora Species 0.000 claims description 6
- 230000002688 persistence Effects 0.000 claims description 6
- 238000011161 development Methods 0.000 abstract description 4
- 230000003993 interaction Effects 0.000 abstract description 2
- 238000000034 method Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 3
- 238000013506 data mapping Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及软件技术开发领域,具体涉及一种弹性可扩展的多数据源mvc模型架构。本发明针对每个数据源都有其相应的模型层,也就是业务逻辑处理层,而不同数据源又通过统一的控制器层来统一控制业务层跟表现层的交互;表现层可根据需要灵活动态选择多数据源业务;针对不同数据源都有相应子mvc模式与其对应;表现层和控制层不是独立设计的,控制层是共用的,表现层也大都是混用的,也就是同一个视图界面可以同时调用不同数据源业务。本发明解决了现有应用程序动态扩展多数据源其他相关业务不易的问题;可以用于Web应用程序的开发。
Description
技术领域
本发明涉及软件技术开发领域,具体涉及一种弹性可扩展的多数据源mvc模型架构。
背景技术
面向对象技术的出现与广泛使用,使得软件的可复用性在一定层度上得到了解决;但由于软件规模和复杂程度的增加以及很多其他方面的原因,人们对软件复用同时也要求越来越高。结构清晰、便于复用、易于维护和可扩展,是目前软件设计所追求的目标。因而mvc(model-view-controller,模型-视图-控制器)做为一种主流的设计模式应运而生。它将应用程序分成三个核心部件:模型、视图、控制器。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。但是,随着时间推移,MVC模式也暴露出大量缺点,因为MVC模式本质上是一个结构型模式。结构模式相比行为模式而言,实际就是静止的,相对固定的,而随着B/S和互联网应用不断普及,相对静止的MVC模式已经不适合高度交互注重行为的应用了。一般的ssh框架都是基于单一数据源基础上设计的三层架构,过于模式化,对web容器有很强的依赖,不容易动态扩展多数据源其他相关业务。
发明内容
本发明解决的技术问题在于提供一种弹性可扩展的多数据源mvc模型架构;基于多数据源情况下,可灵活扩展相关业务逻辑处理的架构。
本发明解决上述技术问题的技术方案是:
针对每个数据源都有其相应的模型层,也就是业务逻辑处理层,而不同数据源又通过统一的控制器层来统一控制业务层跟表现层的交互;表现层可根据需要灵活动态选择多数据源业务;针对不同数据源都有相应子mvc模式与其对应;表现层和控制层不是独立设计的,控制层是共用的,表现层也大都是混用的,也就是同一个视图界面可以同时调用不同数据源业务。
对于每个数据源对应的模型层都通过统一的baseDao层及baseService层实现,但并非每个数据源都要写对应的代码层,可直接通过上下文配置不同javabean名称即可;上层通过配置的名字直接进行baseService层基础操作接口调用;根据需要及hibernate的特征,有时需要根据数据源库表配置po持久化对象及映射文件等。
所述的架构基于ssh(struts+spring+hibernate)技术之上。
多数据源可以根据实际需要通过扩展添加相关上下文配置信息的方式接入,此种方式下扩展接入的数据源会在应用部署到项目时就进行持久连接;也可以根据系统需要,临时通过代码组建,这样事务管理、java bean等都统一通过spring及hibernate进行管理。
通过本发明的架构,用户只需扩展增加相关配置文件信息及按需添加数据库库表相关的映射代码,就可以扩展并发执行多数据源业务逻辑事务处理。同时,用户也可以根据数据源连接信息动态构建相关数据源下的基础业务逻辑处理层,程序直接调用基础接口方法便可以简便的处理上层针对此数据源的业务处理。
附图说明
下面结合附图对本发明进一步说明:
图1为系统实现本方法的整体架构图
图2为本发明代码实现结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明框架针对每一个数据源设计子mvc模型,当然它们又是一体的,都是构建在相同开源框架代码之上的。典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。Spring的作用贯穿了整个中间层,将上eb层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。可扩展多数据源mvc模型架构针对每个数据源都是依照以上原理设计,但中间层及表现成可以根据需要灵活设计,并非固定模式化。通过统一的control层统一控制业务层跟表现层的交互。所有的javabean统一spring的ioc模式管控。
图1为本发明此动态可扩展mvc整体架构图,针对每个数据源都有其相应的model层,也就是业务逻辑处理层,而不同数据源又通过统一的control层来统一控制业务层跟表现层的交互。表现层可根据需要灵活动态选择多数据源业务。针对不同数据源都有相应子mvc模式与其对应。只是表现层跟控制层不是独立设计的,控制层是共用的,表现层也大都是混用的,也就是同一个视图界面可以同时调用不同数据源业务。
图2为本框架代码实现结构图,对于每个数据源对应的model成都通过统一的baseDao层及baseService层实现,但并非每个数据源都要写对应的代码层,程序员直接通过上下文配置不同javabean名称就可以了,上层通过配置的名字直接进行baseService层基础操作接口调用。当然根据需要及hibernate的特征,程序员有时需要根据数据源库表配置po持久化对象及映射文件等。
Claims (5)
1.一种弹性可扩展的多数据源mvc模型架构,其特征在于:针对每个数据源都有其相应的模型层,也就是业务逻辑处理层,而不同数据源又通过统一的控制器层来统一控制业务层跟表现层的交互;表现层可根据需要灵活动态选择多数据源业务;针对不同数据源都有相应子mvc模式与其对应;表现层和控制层不是独立设计的,控制层是共用的,表现层也大都是混用的,也就是同一个视图界面可以同时调用不同数据源业务。
2.根据权利1所述的弹性可扩展的多数据源mvc模型架构,其特征在于:对于每个数据源对应的模型层都通过统一的baseDao层及baseService层实现,但并非每个数据源都要写对应的代码层,可直接通过上下文配置不同javabean名称即可;上层通过配置的名字直接进行baseService层基础操作接口调用;根据需要及hibernate的特征,有时需要根据数据源库表配置po持久化对象及映射文件等。
3.根据权利1所述的弹性可扩展的多数据源mvc模型架构,其特征在于:所述的架构基于ssh(struts+spring+hibernate)技术之上。
4.根据权利2所述的弹性可扩展的多数据源mvc模型架构,其特征在于:所述的架构基于ssh(struts+spring+hibernate)技术之上。
5.根据权利1至4任一项所述的弹性可扩展的多数据源mvc模型架构,其特征在于:多数据源可以根据实际需要通过扩展添加相关上下文配置信息的方式接入,此种方式下扩展接入的数据源会在应用部署到项目时就进行持久连接;也可以根据系统需要,临时通过代码组建,这样事务管理、java bean等都统一通过spring及hibernate进行管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410831700.5A CN104484182A (zh) | 2014-12-25 | 2014-12-25 | 一种弹性可扩展的多数据源mvc模型架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410831700.5A CN104484182A (zh) | 2014-12-25 | 2014-12-25 | 一种弹性可扩展的多数据源mvc模型架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104484182A true CN104484182A (zh) | 2015-04-01 |
Family
ID=52758726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410831700.5A Pending CN104484182A (zh) | 2014-12-25 | 2014-12-25 | 一种弹性可扩展的多数据源mvc模型架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104484182A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138646A (zh) * | 2015-08-26 | 2015-12-09 | 浪潮集团有限公司 | 一种基于Hibernate的数据库操作方法 |
CN106790067A (zh) * | 2016-12-21 | 2017-05-31 | 浙江省公众信息产业有限公司 | 基于mvc分层的业务处理方法、装置和系统 |
CN106815027A (zh) * | 2017-01-22 | 2017-06-09 | 山东鲁能软件技术有限公司 | 一种用于电网多维业务复合计算的高弹性计算平台 |
CN107329809A (zh) * | 2017-07-05 | 2017-11-07 | 国网信息通信产业集团有限公司 | 一种面向多数据源的分布式事务处理方法及系统 |
CN108287696A (zh) * | 2018-03-05 | 2018-07-17 | 万帮充电设备有限公司 | Web应用框架的开发方法、装置及系统 |
CN108287923A (zh) * | 2018-02-28 | 2018-07-17 | 山东汇贸电子口岸有限公司 | 一种可视化接口数据智能提取系统及其设计方法 |
CN108415696A (zh) * | 2018-02-09 | 2018-08-17 | 上海九辛信息技术有限公司 | 分发式web服务架构设计方法 |
CN109558120A (zh) * | 2018-11-22 | 2019-04-02 | 贵州省食品安全检测应用工程技术研究中心有限公司 | 一种基于大数据的生态云平台数据录入系统及使用方法 |
CN109739486A (zh) * | 2019-01-03 | 2019-05-10 | 深圳英飞拓科技股份有限公司 | 基于JdbcTemplate的多数据源数据库操作实现方法及装置 |
CN109857448A (zh) * | 2018-12-30 | 2019-06-07 | 贝壳技术有限公司 | 一种多数据源接入方法及装置 |
CN111078208A (zh) * | 2019-12-12 | 2020-04-28 | 智器云南京信息科技有限公司 | Mvc架构下的数据处理方法、系统、存储介质及电子设备 |
CN111158690A (zh) * | 2020-01-02 | 2020-05-15 | 北京东土科技股份有限公司 | 桌面应用框架、构建方法、桌面应用运行方法及存储介质 |
JP2020109613A (ja) * | 2019-01-02 | 2020-07-16 | 哈爾濱鴻徳亦泰数碼科技有限責任公司 | 4層アーキテクチャに基づくスマートな灌漑エリアeプラットフォーム及びデータ処理方法 |
CN113625996A (zh) * | 2021-07-01 | 2021-11-09 | 浪潮软件股份有限公司 | 一种互联网监管领域的数据智能提取对接系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030145305A1 (en) * | 2001-11-16 | 2003-07-31 | Mario Ruggier | Method for developing and managing large-scale web user interfaces (WUI) and computing system for said WUI |
CN101232505A (zh) * | 2008-01-17 | 2008-07-30 | 中山大学 | 基于mvc架构的ria分层框架的接口模型 |
CN101587435A (zh) * | 2008-05-19 | 2009-11-25 | 北京亿企通信息技术有限公司 | 一种实现mvc的方法 |
US20120102414A1 (en) * | 2010-10-21 | 2012-04-26 | Hilmar Demant | Distributed controller of a user interface framework for web applications |
CN103473041A (zh) * | 2013-07-12 | 2013-12-25 | 西北工业大学 | 一种可视化的数据处理方法及系统 |
-
2014
- 2014-12-25 CN CN201410831700.5A patent/CN104484182A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030145305A1 (en) * | 2001-11-16 | 2003-07-31 | Mario Ruggier | Method for developing and managing large-scale web user interfaces (WUI) and computing system for said WUI |
CN101232505A (zh) * | 2008-01-17 | 2008-07-30 | 中山大学 | 基于mvc架构的ria分层框架的接口模型 |
CN101587435A (zh) * | 2008-05-19 | 2009-11-25 | 北京亿企通信息技术有限公司 | 一种实现mvc的方法 |
US20120102414A1 (en) * | 2010-10-21 | 2012-04-26 | Hilmar Demant | Distributed controller of a user interface framework for web applications |
CN103473041A (zh) * | 2013-07-12 | 2013-12-25 | 西北工业大学 | 一种可视化的数据处理方法及系统 |
Non-Patent Citations (2)
Title |
---|
王庆民 等: "基于SSH框架兵器科技文献平台研究和设计", 《计算机与现代化》 * |
王庆民: "基于Web图书推荐系统设计", 《晋图学刊》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138646A (zh) * | 2015-08-26 | 2015-12-09 | 浪潮集团有限公司 | 一种基于Hibernate的数据库操作方法 |
CN106790067B (zh) * | 2016-12-21 | 2020-05-26 | 浙江省公众信息产业有限公司 | 基于mvc分层的业务处理方法、装置和系统 |
CN106790067A (zh) * | 2016-12-21 | 2017-05-31 | 浙江省公众信息产业有限公司 | 基于mvc分层的业务处理方法、装置和系统 |
CN106815027A (zh) * | 2017-01-22 | 2017-06-09 | 山东鲁能软件技术有限公司 | 一种用于电网多维业务复合计算的高弹性计算平台 |
CN106815027B (zh) * | 2017-01-22 | 2020-06-09 | 山东鲁能软件技术有限公司 | 一种用于电网多维业务复合计算的高弹性计算平台 |
CN107329809A (zh) * | 2017-07-05 | 2017-11-07 | 国网信息通信产业集团有限公司 | 一种面向多数据源的分布式事务处理方法及系统 |
CN107329809B (zh) * | 2017-07-05 | 2020-11-27 | 国网信息通信产业集团有限公司 | 一种面向多数据源的分布式事务处理方法及系统 |
CN108415696A (zh) * | 2018-02-09 | 2018-08-17 | 上海九辛信息技术有限公司 | 分发式web服务架构设计方法 |
CN108287923A (zh) * | 2018-02-28 | 2018-07-17 | 山东汇贸电子口岸有限公司 | 一种可视化接口数据智能提取系统及其设计方法 |
CN108287696A (zh) * | 2018-03-05 | 2018-07-17 | 万帮充电设备有限公司 | Web应用框架的开发方法、装置及系统 |
CN109558120A (zh) * | 2018-11-22 | 2019-04-02 | 贵州省食品安全检测应用工程技术研究中心有限公司 | 一种基于大数据的生态云平台数据录入系统及使用方法 |
CN109857448A (zh) * | 2018-12-30 | 2019-06-07 | 贝壳技术有限公司 | 一种多数据源接入方法及装置 |
JP2020109613A (ja) * | 2019-01-02 | 2020-07-16 | 哈爾濱鴻徳亦泰数碼科技有限責任公司 | 4層アーキテクチャに基づくスマートな灌漑エリアeプラットフォーム及びデータ処理方法 |
CN109739486A (zh) * | 2019-01-03 | 2019-05-10 | 深圳英飞拓科技股份有限公司 | 基于JdbcTemplate的多数据源数据库操作实现方法及装置 |
CN111078208A (zh) * | 2019-12-12 | 2020-04-28 | 智器云南京信息科技有限公司 | Mvc架构下的数据处理方法、系统、存储介质及电子设备 |
CN111158690A (zh) * | 2020-01-02 | 2020-05-15 | 北京东土科技股份有限公司 | 桌面应用框架、构建方法、桌面应用运行方法及存储介质 |
CN111158690B (zh) * | 2020-01-02 | 2023-11-17 | 北京东土科技股份有限公司 | 桌面应用框架、构建方法、桌面应用运行方法及存储介质 |
CN113625996A (zh) * | 2021-07-01 | 2021-11-09 | 浪潮软件股份有限公司 | 一种互联网监管领域的数据智能提取对接系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104484182A (zh) | 一种弹性可扩展的多数据源mvc模型架构 | |
RU2638725C1 (ru) | Способ и система управления устройством с помощью радиального графического интерфейса пользователя | |
US20160117115A1 (en) | Disk partition stitching and rebalancing using a partition table | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
CN103440364B (zh) | 基于bim模型自动生成wbs节点的方法和系统 | |
US20160139943A1 (en) | Virtual machine cluster backup | |
KR101348401B1 (ko) | 사용자 인터페이스 렌더링 방법, 이를 실행하는 사용자 인터페이스 렌더링 서버 및 이를 저장한 기록 매체 | |
CN103970526A (zh) | 一种基于Android单Activity的视图切换技术 | |
CN105247470B (zh) | 用于显示多工作区的多个显示器 | |
CN103809975A (zh) | 智能云表单的实现方法 | |
CN103455512A (zh) | Saas平台多租户数据管理模型 | |
CN103426192B (zh) | 一种可修改绑定方式的动画角色构建方法 | |
TW201434300A (zh) | 跨越叢集邊界的服務遷移 | |
DK1131932T3 (da) | Fremgangsmåde til administration af data | |
CN105389339A (zh) | 一种快速生成数据库sql语句和实体类的工具 | |
CN106663023A (zh) | 对云应用中的虚拟机进行分组 | |
CN104391701A (zh) | 一种能效评估软件开发方法 | |
CN105242931A (zh) | 对游戏界面编辑并生成代码的方法及系统 | |
CN104267957A (zh) | 一种移动应用统一服务框架系统 | |
CN105243237A (zh) | 一种装配工艺结构树及其构建方法 | |
CN104360842A (zh) | 一种基于jbpm的服务动态流程编排方法 | |
CN105573672B (zh) | 一种基于nfs的虚拟化存储方法和系统 | |
US10365896B2 (en) | Storing data models together | |
Atkinson et al. | Iterative and incremental development of component-based software architectures | |
CN108037933A (zh) | 一种房产服务应用程序中城市服务的配置方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150401 |