前言
Hasor 是一款基于 Java 语言的应用程序开发框架,它的核心设计目标是提供一个简单、切必要的环境给开发者。开发者可以在此基础上,通过 Hasor 强有力的粘合机制,构建出更加完善的应用场景。同时 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. 体积小,无第三方依赖
4.1.0 发布内容
1、稳定性提升,core\web\db\dataql\tconsole 这些组件的单测覆盖率大幅提升
2、hasor-core 开始全面兼容 jsr332 向标准靠齐
3、另外这次新增了 tConsole 和 DataQL 两个子框架。
4、最后新增了 all-in-one 包,只需要依赖一个 jar 包。就可以实现 hasor 全系引入。
Commons
- 修复 ResourcesUtils 和 ScanClassPath,IO 文件句柄泄露问题。
- BasicFuture 的 callback,当没有实现CancellFutureCallback的时候时候,会触发failed。
- DataQL 中的 InterBeanMap 更名为 BeanMap 移到 commons 中。
- DB 中的 LinkedCaseInsensitiveMap 移到 commons 中。
Core
- 改造 hasor.core 全面支持 JSR-330。
- 全新的 SPI 能力。
- 单测覆盖率达到 90%,修复若干潜在的问题。
- 主 namespace ‘http://project.hasor.net/hasor/schema/main’ 统一改为 ‘http://www.hasor.net/sechma/main’
- @InjectSettings 注解增加,命名空间支持。
- 默认配置文件名 hasor-config.xml 改为 hconfig.xml、不在提供环境参数属性文件的机制。
- 其它大量接口上和内部执行机制的优化
Web
- 单测覆盖率达到 90%,修复若干潜在的问题。
- hasor-env-properties 参数不在有效。
- @Produces 注解行为变化为不在影响使用哪个渲染器,而是负责指明使用什么类型作为 response 的 ContentType。
- j2ee Servlet 会被转换成 MappingTo 运行。j2ee Filter 会被转换成 InvokerFilter 运行。
- 新增 OneConfig 汇总了FilterConfig, ServletConfig, InvokerConfig 三个接口的实现。
- ListenerPipeline 不在需要,取而代之使用 SPI 机制来替代。
- RenderInvoker 接口不在提供 lockViewType 相关方法。
- MimeType 接口在获取 mimeType 信息时改为优先框架内的数据,如果框架内数据招不到在到 context 上查找。
DB
- mybatis 插件回归 hasor-db
tConsole
- 重构,对于多行输入支持用户自定义命令结符号or字符串。重构后单测覆盖率达到 90%。
- 支持 server 模式通过 Socket 端口运行
- 支持 基于标准输入输出流运行
- hasor-boot 能力被完完全全整合,因此 Hasor 将不在提供 hasor-boot。
DataQL
- 重构,放弃 javacc 更换成 antlr4。antlr4 更加智能。AST 模型仍然不变。重构后单测覆盖率达到 90%。
- DataQL 大量新语法新特性。具体参看语法参考手册。一些老的语法形式也不在支持,因此 DataQL 的语法和以前有明显变化。
- 运行时内存模型:确定为 两栈一堆
- 指令集系统:不在需要 ASM、ASA、ASO 三个指令,取而代之的是更严谨的指令集。
- SDK:函数包能力
- DataModel数据模型:增加 unwrap 方法,用来解开 DataModel 包裹
- 新增 Fragment 机制允许 DataQL 执行外部非 DataQL 语法的代码片段。
- BeanContainer 改为 Finder,删掉 UdfSource、UdfManager、UdfResult 不在需要这些概念。
- 原有 dql test case 语句文件统一转移到 _old 目录下面备用。
RSF
- rsf 使用 tconsole 的新接口
- 注册中心暂不可用,下几个版本会重新设计。
- rsf 的 InterAddress 支持域名传入,但是toString 的时仍然会转换为 ip。
其它
- 删除 Hasor 默认提供的 JFinal 插件支持。理由是 JFinal 功能和 Hasor 体系重叠,同时 Hasor 的所有功能都是独立。
- 整合 Hasor 及其容易因此没有提供集成代码的必要。
- 新增 Hasor-all 包。
发展状况
Hasor起源于2012年,当时作为<新东方教育科技集团> 研发中心下各项目的基础手脚架。
2015年7月3日,1.0.0版本发布。确立了“微内核 插件”发展策略。
2016年8月18日,2.4.3版本发布,同时开始孕育全新的子项目 RSF。由此 Hasor 开始向分布式领域发展。
2017年2月21日,RSF 被并入 Hasor 体系,同年 DataQL 问世。
2020年2月21日,4.0.7 最稳定的版本问世。这个版本中几乎所有功的代码都被重新 Review 并重新评估每个模块的设计是否需要更新。
总结
这个框架也是最近刚刚发现的,搜集了一下相关信息分享给大家。查了一些资料,技术社区在16年之后基本不太活跃了,要使用的小伙伴要做好技术调研。Java 主流的框架还是基于Spring的SpringBoot/SpringCloud 体系。
内容出处:,
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/share/13681.html