下载APP 随时随地学编程
返回 首页

Hasor开发手册

开始阅读
手册说明:

Hasor 是一款基于 Java  语言的应用程序开发框架,它的核心设计目标是提供一个简单、且必要的环境给开发者。开发者可以在此基础上,通过 Hasor 强有力的粘合机制,构建出更加完善的应用场景。同时 Hasor 的各种内置插件也会帮助开发者进行快速开发。而所有内置插件,在初始化的时都做了智能加载,只有用到了它们才会被加载到框架中。否则这些内置插件在初始化期间就会放弃加载自己。基于目前 Hasor 内核上已经发展出 DB、Web、Restful 三大基础框架。


设计思想


Hasor 提倡开发者充分利用编程语言的优势进行三方整合和模块化设计。同时 Hasor 也主要是通过这种“ 微内核+插件 ”的方式丰富开发所需的所有功能。


决定避开 COC 原则的原因是, COC 虽然已约定的方式降低了整个框架的设计复杂度,但同时也最大限度的牺牲了框架的灵活性。缺少灵活性的框架在应用场景上会受到极大的制约。而 Hasor 的设计则更加面向底层,因此需要更多的灵活性。

Hasor 强大的灵活性表现在模块整合能力上,对于某一个领域开发方面 Hasor 依然强调并力推 COC 。小而美的核心,大而全的生态圈是 Hasor 的目标。


架构





特性


  • 01. IoC/Aop编程模型,设计精巧,使用简单。
  • 02. COC原则的最佳实践,‘零’配置文件。
  • 03. 微内核 + 扩展,基于内核已发展出 DB、Web、Restful 三大独立的基础框架。
  • 04. 真正的零开发,解析项目特有的自定义 Xml 配置。
  • 05. 支持模板化配置文件,程序打包之后一套配置通吃(日常、预发、线上)以及其它各种环境。
  • 06. 完备的 JDBC 操作接口,支持 Result -> Object 映射。
  • 07. 提供三种途径控制事务,支持七种事务传播属性,标准的事务隔离级别。
  • 08. 支持多数据源、及多数据源下的事务控制(非JPA)。
  • 09. 内置事件机制,方便进行业务深度解耦,使业务逻辑更佳清晰。
  • 10. 支持 Web 类型项目开发,提供 restful 风格的 mvc 开发方式。
  • 11. 支持Form表单验证、支持场景化验证。
  • 12. 提供开放的模版渲染接口,支持各种类型的模版引擎。
  • 13. 提供丰富的工具箱,帮助您快速开发,有了它您甚至不需要 apache-commons。
  • 14. 支持log4j、logback等多种主流日志框架。
  • 15. 体积小,无第三方依赖。


发展状况


Hasor 起源于2012年,并在2013年初具雏形。当时尚未开源,并被应用到公司个大项目中。那个时候 Hasor 还是基于Guice构建,并且整合了Spring JDBC、Guice Servlet等大量三方框架。还有少量自建功能,例如:WebMVC。当时整个框架还未从软件产品中完全剥离出来,其中最基本的要素经过打包会产生约 130MB的 JAR包依赖。与目前相比显得无比臃肿。


随后2013年开始,通过对整套框架的重新梳理。 Hasor 才得以从项目中脱离出来成为独立的框架,依赖也随时聚减。同年开始计划开源版本的实现,也就是如今的 Hasor 。


2013年9月15日,0.0.1版本,第一个版本被推送到Maven中央仓库, Hasor 的雏形被确立,Module化的插件概念被提出,依赖减少到只有Guice和slf4j。


2014年7月26日,0.0.9版本被推送到Maven中央仓库。经历多个版本迭代最后一个核心依赖Guice也被去除。而此时 Hasor 已经拥有了Web、JDBC、和完整的数据库事务能力。在这个阶段中 Hasor 曾经在Guice、Spring之间摇摆不定,也对未来的路线和定位发生过几次重大的改变。

2015年7月3日,1.0.0版本发布,这是一个里程碑。首先 1.0 开始 Hasor 许多零碎的项目合并到了一起(all-in行动),同时 Hasor 的发展方向和目标也更加明确。同年11月27日,2.0版本发布。 Hasor 确立了“小而美的核心,大而全的生态圈”的目标。


2016年8月18日,2.4.3版本,经过持续的沉淀、整合、优化。 Hasor 越来越稳定可靠,基于2.4版本 Hasor 开始孕育全新的子项目  Hasor-RSF (分布式RPC)。


相关资源



目录

第一章 Hasor介绍

Hasor 约定优于配置
Hasor 相关链接

Hasor 历代版本

Hasor 3.x Version
Hasor 2.x Version
Hasor 1.x Version
Hasor 0.x Version
Hasor 贡献
Hasor 参与开发
Hasor 感谢

第二章 Hasor快速上手

Hasor 配置Web工程
Hasor 接收Request请求
Hasor 使用模板引擎
Hasor 基本IoC
Hasor Aop拦截方法调用
Hasor 读写数据库
Hasor 数据库事务
Hasor 配置文件

第三章 Hasor基础

第一节 启动Hasor

Hasor 创建容器
Hasor 程序入口

第二节 Hasor生命周期

Hasor Init阶段
Hasor Start阶段
Hasor Shutdown阶段

第三节 Hasor Module

Hasor 依赖和组合
Hasor 执行阶段
Hasor 模块类型
Hasor 多工程

第四节 Hasor ApiBinder

Hasor 类扫描
Hasor 扩展ApiBinder
Hasor ApiBinder转换

第五节 Hasor IoC

Hasor 类型注入
Hasor 接口注入
Hasor 名称注入
Hasor ID注入
Hasor 得到AppContext
Hasor 注入配置
Hasor 注入环境变量
Hasor 用代码配置注入
Hasor 调用类初始化方法

第六节 Hasor Aop

Hasor 使用Aop拦截器
Hasor 拦截器级别
Hasor 拦截器链
Hasor 拦截器的匹配器

第七节 Hasor 作用域

Hasor 单例
Hasor 原型
Hasor 自定义作用域

第八节 Hasor 事件

Hasor 同步事件
Hasor 异步事件
Hasor 只执行一次的监听器
Hasor 事件链
Hasor 异步事件线程池设置

第九节 Hasor配置文件

Hasor 文件格式
Hasor 读取配置文件
Hasor static-config
Hasor 命名空间
Hasor 加载顺序
Hasor 解析Xml

第十节 Hasor 环境变量

Hasor 使用环境变量
Hasor 模版化配置文件
Hasor env.config

第四章 Hasor Web开发

第一节 Hasor 热身

Hasor Web工程配置
Hasor Hello Word

第二节 Hasor 处理Web请求

Hasor 请求参数
Hasor Cookie
Hasor 请求头信息
Hasor RESTful
Hasor 拦截器
Hasor WebPlugin
Hasor MappingSetup接口

第三节 Hasor 处理响应

Hasor Freemarker
Hasor 请求并返回JSON
Hasor 自定义模板引擎

第四节 Hasor 表单

Hasor Form
Hasor 表单验证
Hasor 场景化验证

第五节 Hasor J2EE

Hasor 使用 Servlet
Hasor 使用 Filter
Hasor 使用 HttpSessionListener
Hasor 使用 ServletContextListener

第六节 Hasor 装饰器

Hasor 文件布局

第七节 Hasor 文件上传

Hasor 流式上传

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }