您的位置:首页 > 运维架构 > 网站架构

1.osframe后台开源框架架构概述

2016-06-27 00:00 405 查看
摘要: 本框架是一个基础后台开发框架,基于springmvc+spring+hibernate搭建,前端采用angular js+sea js +bootstrap展现,基于shiro的权限管理和登陆控制。基础框架中包含了用户管理、权限管理等基础模块,提供了简单的首页门户,可以快速的实现新项目的搭建。

开源项目名称:
osframe管理系统
托管地址: http://git.oschina.net/haizicq/osframe 主要技术:
spring mvc、spring、hibernate、angular js、seajs、bootstrap、shiro
框架介绍:
本框架是一个基础后台开发框架,基于springmvc+spring+hibernate搭建,前端采用angular js+sea js +bootstrap展现,基于shiro的权限管理和登陆控制。基础框架中包含了用户管理、权限管理等基础模块,提供了简单的首页门户,可以快速的实现新项目的搭建。
框架特色:
支持电脑和手机界面的自动智能切换。

技术交流群:330710190(OSFrame技术交流群) 欢迎大家加入,共同探讨使用过程中的问题。

框架基本构思:
1、基本思路:使用模块化的思想来开发项目,按模块进行开发,以便于代码管理和移植。
2、基础增删改查封装:子模块中的类继承基础模块中封装的基础方法就能直接实现基础的增删改查功能
3、权限注解:通过注解的方式实现功能权限控制,直接开发中实现,而不必在项目实施中去纠结功能url配置
4、设备自适应展示:前端页面自动适配设备屏幕尺寸展示,只需要引入公共的页面头部和尾部jsp片段
5、模块耦合处理:为了减少模块间的耦合关系将一些基础的功能抽象为接口,由对应的子模块实现,其他模块只需要依赖基础框架模块,这样非常便于更换模块

架构决策:
1、后端采用主流的springmvc+spring+hibernate架构,可快速实现增删改查,虽hibernate在大数据处理上有一定的性能问题,但一般数据量的功能上是完全可以采用的,而一般项目中数据量也不会非常大,就算数据量大也只存在于少部分表中,所以整体项目框架还是推荐采用hibernate,当需要使用大数据量业务时再集成mybatis进来处理。如果多数表数据都非常大的话,就不推荐使用本框架了。
2、权限控制采用shiro框架,小而简单的实现登陆和权限控制
3、bootstrap做页面UI框架,在适配屏幕方面有很不错的表现
4、angular js 是一个优秀的单页面框架,项目本着构建一个没有那么多frame嵌套的框架,这是一个很不错的选择。 另一方面它的指令功能,相当于后端的标签功能,非常便于开发很多通用功能,而不必像java taglib那样跟java代码依赖,不便于移植。
5、sea js 当时也在考虑requirejs,可能是受到:RequireJS 是没有明显的 bug,seajs 是明显没有 bug。这句话的蛊惑吧,由于angular js需要一次性的加载完所有的js,这显然不利于大型项目模块的开发,所以引进seajs实现按需加载模块。

当前功能模块
1、用户管理(users)
2、权限控制(auth)
3、用户登陆(login)
4、样例参考模块(demo)

框架代码模块
1、工具类模块(util)
2、基础框架模块(framework)
3、标签模块(taglib)
4、用户管理(users)
5、权限控制(auth)
6、用户登陆(login)
7、样例参考模块(demo)

模块间的依赖
1、util模块为框架提供工具类,不依赖与框架任何模块,如果需要依赖框架功能的工具类,放到框架或模块的util包中
2、framework模块为框架基础模块,仅依赖于util模块
3、taglib模块为项目提供标签框架,依赖 util和framework
4、用户管理 依赖于:util和framework
5、权限管理 依赖于:util、framework、用户管理
6、用户登陆 依赖于:util和framework
7、样例参考模块 依赖于:util、framework、用户管理
8、web-view 依赖于:所有项目模块,另taglib标签模块一般只有web展现层依赖
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息