1 Star 0 Fork 5

wujianfeirun / ironrhino

forked from quaff / ironrhino 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
README.adoc 4.81 KB
一键复制 编辑 原始数据 按行查看 历史
quaff 提交于 2016-01-20 18:51 . Polishing docs

简介

介绍

Ironrhino是一个全栈Web开发平台, 它不是闭门造车, 而是伴随着实际应用系统开发而诞生并发展, 它也不是重复造轮子, 而是建立在一系列成熟的开源框架之上并且向它们回馈贡献.

  • 它具有极快的开发效率, 让快速构建原型并且迭代开发变得更容易.

  • 它具有极强的伸缩性, 从单机小应用到大规模高并发集群应用都适用, 并且保持一致的开发方式.

  • 它具有很强的生命力, 诞生多年以来一直保持活跃的更新, 并不止步于缺陷和漏洞修复, 更多的是增加新特性和提升性能和稳定性.

  • 它在生产环境上经受住了各种的考验, 至少有数十个应用系统在稳健的运行着.

与大部分开发平台相比, 不仅仅覆盖服务器端各层, 还包含了Web前端界面. 它并不依赖代码生成技术, 而是由开发人员直接面向并完全掌控源码, 基础平台的升级并不需要变更应用系统源码, 从而不会出现升级断崖.

目标

让应用系统开发人员尽可能的重用已有的开发技能, 快速上手并专注于业务功能开发. 提供丰富的底层通用非业务性功能组件给应用系统开箱即用, 最大限度减少配置文件和样板代码, 减少重构障碍, 对快速迭代式开发友好.

高亮特性

  • 丰富的前端组件, 只需在dom元素上增加class和其他属性, 前端通常是开发人员的短板, 免去他们对js和css的恐惧.

  • 强大的CRUD功能, 最简只需要一个JPA实体类即可生成功能完整界面美观的CRUD功能, 再配合一些注解来实现高度定制化. 代码越少越好掌控, 以注解声明式编程比命令式编程更安全.

  • 开箱即用的基础服务, 缓存和锁等多种基础服务, 只需依赖注入或加上一些注解即可使用.

  • 内置基于角色的用户权限管理, 构建在spring security基础之上, 提供了一致性的java代码层注解方式和页面层宏方式的权限控制, 内置了基于数据库的用户管理.

  • 受OAuth2保护的Rest API, 内置提供了OAuth2的服务端, 用还是熟悉的味道的Spring MVC配上可口的注解去实现Rest API, 用java代码去补充文档, 提供统一的界面展现所有API文档, 免去了文档和代码脱节的弊端.

  • 方便快捷的微服务, 服务发布端只需要标注一个注解即可将容器内的bean发布成远程服务, 服务消费端只需要配置所需服务的包名即可自动将远程服务对象注册到容器内, 跟本地对象完全一样, 傻傻分不清楚.

  • 多实例分布式部署优先, 前端session无缝支持多实例分布式部署, 不需要会话粘性让前端负载均衡随机访问任意实例都可以, 其他服务比如缓存和锁等基础服务都有包含支持分布式部署的多种实现, 配置环境变量即可在不同实现下无缝切换.

  • 一份代码到处运行, 版本库里面构建的部署包不需任何修改来部署到不同的环境, 专治生产环境误用开发测试部署包. 还可以设置环境变量来自动适应不同的部署规模.

  • 快捷安全的升级, 通常应用系统开发之后, 基础开发平台还会有新的功能增加和安全增强, 强力推荐应用系统保持跟基础开发平台同步升级, 基础平台会紧跟业界最新资讯, 出现的安全漏洞会第一时间修复, 只需要一个命令就可以完成依赖的二方库和三方库的升级, 通常应用系统不需要修改任何代码, 由基础平台来保证兼容性.

  • 快速搭建部署环境和生成一键部署脚本, 只需一个空白的ubuntu或centos操作系统, 运行一键安装脚本, 安装并配置所需软件包, 顺带生成一键部署脚本, 以后每次部署一个命令搞定.

  • BPMN2.0流程支持, 官方扩展支持Activiti工作流, 提供管理界面和自动渲染表单功能, 理想情况下只需要一个流程定义文件就可以实现完整的业务功能.

  • 微信公众平台接口, 官方扩展封装好微信公众平台API, 并且提供一些额外的开箱即用的功能.

可重用的技能

  • Spring 这是ironrhino的心脏

  • Hibernate和JPA2.0 用JPA注解去标注实体类, 用criteria方式构造查询条件, 复杂查询可以混用spring jdbc

  • Struts2 需要掌握ognl

  • Freemarker 用来定制界面

  • Redis

  • Zookeeper

  • Rabbitmq

  • Jasperreports

  • Jquery

  • Bootstrap-2.3

  • …​

典型开发步骤

  1. 生成初始工程

  2. 分析业务需求提炼实体模型

  3. 用注解丰富化实体模型实现CRUD

  4. 写自己的Service Action FTL页面来实现非CRUD功能

  5. RPC方式暴露服务

  6. Rest方式暴露API

与通常开发习惯相比, 没有数据库设计, 取而代之的是设计实体模型, 通过JPA注解映射自动生成数据表, 业务功能开发都是围绕实体模型展开.

Java
1
https://gitee.com/wujianfeirun/ironrhino.git
git@gitee.com:wujianfeirun/ironrhino.git
wujianfeirun
ironrhino
ironrhino
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891