168 Star 409 Fork 138

max256 / morpho

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

#morpho

  • morpho是一款JAVAEE应用开发框架及脚手架

#项目重大更新进程

  • 2015年10月份以来在此基础上开发了多个项目,经过内部使用 精简出公用的脚手架部分 并升级最新的依赖
  • 20170804更新 增加了代码生成器 详见https://gitee.com/max256/morpho-code-help 过时不推荐使用
  • 20170818更新 新增功能excel报表推荐使用easypoi以整合 新增整合ureport2报表引擎推荐使用 更新最新依赖 修复已知bug
  • 20170821更新 增加了工作流支持包括流程设计器请试用 流程和用户表的关联请您根据情况自行完成 使用 uflo2完成https://github.com/youseries/uflo文档http://wiki.bsdn.org/display/UFLO/UFLO+Home 注意第一次请修改config.properties中hbm2ddl生成流程模块的自动建表 系统其他表结构使用对应的sql文件建表
  • 20170904更新 更新jar到最新 新增两种风格的在线表单构造生成器 管理员权限登录后可见 有需要可以使用 新增urule规则引擎 有需要可以使用
  • 20170912更新 修复bug 另创立了新的基于morpho-springboot的项目和本项目保持同步 https://git.oschina.net/max256/morpho-springboot 正在开发中morpho-springboot不建议正式环境使用 正式发布会在此通知 注意的是morpho-springboot将不再支持hibernate更符合互联网业务的特征
  • 20170918更新 新增包装list到页面的json数据中包装新的自定义字段的功能 例如加入数据字典翻译信息 morpho-springboot初步可用 欢迎试用
  • 20171120更新 更新依赖到最新版修复了uflo ureport urule中的许多漏洞 增加JTA分布式事务支持但默认并不开启 提供操作说明按需取用
  • 20171123更新 增加了基于数据库存储的quartz定时任务管理功能 另外不推荐使用jasperreport已移除 以后版本更新对应的数据库将主要更新mysql版本和oracle版本 其他数据库版本没有太多精力维护 请熟悉其他数据库的用户自行从mysql版转换 提交PR贡献一份力量 本次更新请重新运行mysql脚本 注意这是初始化脚本 如果升级的话请根据涉及的表执行部分sql即可 另外 代码生成器 将在近期重写~
  • 20171228更新 完善报表系统 录制了一个初步的使用本项目的视频说明 链接: https://pan.baidu.com/s/1hrBlpXi 密码: xnuk
  • 20180824更新 更新maven依赖到最新版 更新前端框架依赖到最新版 强烈建议更新 修复了因依赖的框架可能导致的许多漏洞详情请见提交说明
  • 20180829更新 全新代码生成器发布 推荐使用morpho-code-generator 老的代码生成器标记为过时不推荐使用

#项目名称来历

  • 来自内部项目butterfly由于这个项目有诸多问题,经过多次维护后升级到下一代morpho项目
  • Morpho (Linnaeus, 1758),闪蝶属,鳞翅目蛱蝶科闪蝶亚科的一属。只分布于新热带界。中国学者又会把此属分类为独立一科——闪蝶科(Morphidae)或称灿蝶科。此属以雄蝶翅面的闪蓝色著名,此属的所有物种均受到蝴蝶收藏家珍视。 Morpho

#设计思想

  1. 简单
  2. 开箱即用
  3. 不是炫技之作,选用了最最最常见的技术架构,减少学习风险,不使用小众的模板语言,小众的ORM,小众的前端框架和小众的代码风格 一切为了快速上手 如果您针对某些模块有必要需求 您只需 换掉该部分即可
  4. 现代,仅对现代浏览器提供支持,java版本最低支持1.8 没有技术债务
  5. 注释第一 完备的注释 如果真没写 那可能是实在不需要注释的段落了~
  6. 轻量 没有做maven分模块项目 如果您想分 您分分钟就能搞出来 作为脚手架项目再分太多模块的话可能会对您自己的项目本身造成模块划分的不良影响 这点您自己决定
  7. 安全,内置大量加解密,认证授权,请求过滤等组件,您按需取用即可,当今网络,可不那么安全

#有图有真相 中式报表在线设计 流程设计器 整合监控页面 session管理页面 权限管理页面 用户管理页面 登录页

#系统要求如下:

  1. jdk1.8及以上(1.7的话有一点需要自行适配的 有部分用了1.8的api 本想兼容1.7的最后还是没把持住~~~)
  2. tomcat8.0及以上 支持8.0.x 8.5.x 9.0.x 测试时使用的版本8.0.43 8.5.33 9.0.11测试通过
  3. mysql5.6及以上(如果您要使用mysql的话) (特别注意如果您要使用JTA分布式事务的话需要选用支持XA特性的数据库)
  4. oracle11g及以上(11g 12c测试通过 10g理论上应该也没有问题 未经测试)
  5. linux windows x86 32bit 64bit都支持
  6. 容器要求servlet3.1规范及以上实现
  7. sqlserver的脚本是不完整的 是之前历史版本对应的sql建表语句 如果您需要使用sqlserver请自行从mysql版转换脚本,系统主要针对mysql开发,提供mysql转oracle的脚本,但是sqlserver需要您手动操作转换。

#morpho的技术选型如下:

##后端技术

  1. 核心框架: Spring Framework4.3.18
  2. 数据库访问: Mybatis3.4.6 +hibernate5.1.15(可选支持 框架已经集成 但脚手架部分并不依赖 如果您特别不喜欢hibernate可以直接移除)
  3. 视图框架: Spring MVC
  4. 页面视图: jsp
  5. 日志组件: log4j2
  6. 报表:poi,easypoi,ureport2
  7. 缓存:ehcahce redis(redis非强制依赖 如果您不需要可以移除)
  8. 定时任务:quartz spring内置的调度器
  9. 权限:shiro 1.4.0 10.安全:esapi 11.其他组件: apache commons系列 joda系列 spring系列 druid fastjson jackson springfox guava tk.mybatis.mapper3.4 12.数据库:支持mysql oracle 默认mysql oracle需要做一点点配置即可 详见文档 13.流程:uflo2 14.规则引擎:urule2

##前端技术

  1. JS框架: jquery
  2. CSS框架: Bootstrap3.X
  3. 富文本编辑器: UEditor
  4. 树形组件: zTree
  5. 日期控件: My97DatePicker laydate
  6. 表格组件: bootstrap-table 同时也支持jqgrid和easyui的datagrid 后两者版权问题 不默认使用 根据您的情况自行选择
  7. MVVC:vue.js

#WIKI http://git.oschina.net/max256/morpho/wikis

#技术交流

  • QQ群:210722852
  • 请备注来自 开源中国morpho项目

#开发者:

  • fbf
  • help~~~max256.com ~~~替换成@

#项目捐助者: to do list

#版权

  • apache2.0许可证
  • 保留署名权
  • 您可以根据自己的需要修改源码
  • 如果需要商业帮助请联系help~~~max256.com包括但不限于定制,咨询,培训,项目合作 ~~~替换成@

#本项目的特点:

  • 1.最新的框架依赖,帮助您学习最新的技术
  • 2.框架本身精简 不偏向依赖某些技术 您可以自由选择
  • 3.jsp el表达式 jquery这些传统技术,掌握的人多降低学习成本,同时引入了vue.js bootstrap-table等比较流行的插件也保持技术先进性,怎么使用就要看您的意图了
  • 4.hibernate和mybatis同时支持 这应该可以囊括您之前的技术栈了 ORM随心换
  • 5.集成shiro权限控制支持AOP方法级权限控制 并对shiro相关bug作出处理
  • 6.注释完备!~
  • 7.内置一个加解密通信的模块 如果有需要可以直接使用
  • 8.完成企业应用的常见功能,在此基础上加速您的开发进度

#已完成的功能

  • 1.用户管理
  • 2.角色管理
  • 3.资源权限管理
  • 4.组织机构管理
  • 5.系统运行监控
  • 6.数据源监控
  • 7.日志管理
  • 8.在线SESSION管理(可以踢人)
  • 9.api管理与测试工具
  • 10.基于easyui的代码生成器(上一代框架使用了easyui,写了一个生成器,不再维护,如果您使用了easyui可以用用,扩展也很简单)
  • 11.工具-用于生成资源权限表的数据根据注解扫描 减轻开发完配置资源权限的工作量
  • 12.定时任务管理

#开始使用

  1. 下到本地后运行init sql 默认使用的是mysql5.6及以上版本innodb引擎 如果您需要使用oralce请导入oracle版本基于11g制作内容和mysql版本一样 并且修改配置文件中的url schema dialect
  2. 配置config.properties
  3. 放入tomcat运行
  • 数据库中内置登录账号
  • 账号admin 密码admin 管理员用户
  • 账号less 密码admin 最小权限用户

#关于使用sqlserver配置的注意事项 默认使用的是mysql(此部分只对需要使用sqlserver的用户有用)

  • 请手动建库morpho(或者根据您的情况自行决定)
  • 运行初始化脚本 前半部分为建表 后半部分为插入数据 运行这个sql脚本
  • 在配置文件中配置
  • druid.jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
  • druid.jdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=morpho
  • 以下两项根据实际情况配置
  • hibernate.default_catalog=
  • hibernate.default_schema=
  • 根据实际情况配置
  • hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect
  • 或者
  • hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect

配置/morpho/src/main/resources/spring/applicationContext-mybatis.xml 中的分页插件dialect为sqlserver或者sqlserver2012 前者适用2005、2008版本后者适用2012版本 ps:建表语句默认使用varchar表示字符串类型没有使用nvarchar所以在非中文版本windows中乱码 请您明知这一点 如果需要nvarchar请自行修改表结构 并且配置hibernate注解类型明确nvarchar 或者继承sqlserver驱动注册string到nvarchar的默认映射 请您考虑并解决

  • sqlserver用户特别注意:目前的sqlserver脚本在最新版程序中不能直接用 请参考mysql版本或者oracle版本自行建表 quartz的sql脚本请在quartz官方下载并执行 由于没有精力和sqlserver各种版本的环境 以后将不在更新该脚本 欢迎大家贡献已修改好的sqlserver脚本 将合并到主分支

#开发步骤 参见wiki http://git.oschina.net/max256/morpho/wikis/%E9%A1%B9%E7%9B%AE%E6%96%87%E6%A1%A3

#参与进来

  • 请先start在此谢过
  • 问题请issue中提出
  • 特别紧急的问题请在群里@我或者issue提出后给我发封邮件 请注明问题内容 以及联系方式
  • 欢迎fork

#参考过的项目与特别鸣谢

........... TO DO LIST 文档逐步完善中

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2017 fbf Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

简介

企业级JAVAEE应用脚手架 www.max256.com APACHE2.0协议开源 帮助help@max256.com Q群210722852请备注开源中国morpho项目 展开 收起
Apache-2.0
取消

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/max256/morpho.git
git@gitee.com:max256/morpho.git
max256
morpho
morpho
master

搜索帮助

14c37bed 8189591 565d56ea 8189591