发布于 2016-02-24 23:55:01 | 193 次阅读 | 评论: 0 | 来源: 网友投递
Hasor Java开源框架
Hasor是一款开源框架。它是为了解决企业模块化开发中复杂性而创建的。Hasor遵循简单的依赖、单一职责,在开发多模块企业项目中更加有调理。然而Hasor的用途不仅仅限于多模块项目开发。从简单性、松耦合性的角度而言,任何Java应用都可以从中受益。Hasor与Struts,Hibernate等单层框架不同,它可以提供一个以统一、高效的、友好的方式构造整个应用程序。并且可以将这些单层框架建立起一个连贯的体系,可以说Hasor是一个搭建开发环境的框架。Hasor包含多个可选的子模块
===== Hasor-Core v2.2.0 (2016-2-23)
* 新增:
01.增加Event事件注册插件,简化事件的注册机制。
02.Settings接口增加 addSetting方法和clearSetting方法用来增加和删除配置项。
03.新增Spring插件,完美与Spring整合。同时支持与Spring的双向事件通知。
- 支持Hasor的Bean通过Spring获取、支持SpringBean通过Hasor获取。
- 支持Hasor的事件,通过Spring方式接收、支持Spring的事件,通过Hasor方式接收。
* 改进:
01.改进事物管理器的拦截器注册机制,从拦截所有类改为只拦截标记了@Transactional注解的方法。
02.ResourceModule插件的实现机制从 Servlet 改为Filter,当资源无法通过插件获取时候,转交给servlet容器。原有方案是直接抛出404。
03.RestfulModule插件的实现机制从 Servlet 改为Filter,可以通过WebController类中renderTo方法指定具体要渲染的模版,模版渲染更加灵活。
04.RestfulModule插件的实现机制从 Servlet 改为Filter,支持ContextMap中setViewName方法来指定渲染的模版。
05.环境变量,WOR_HOME 从 USER.DIR 更换到 USER.HOME。原因是,USER.DIR 工作目录获取并不是想象的那样始终是在程序位置。
06.SaxXmlParser类优化,在处理配置项冲突时,升级为保留全部配置。原有逻辑为合并覆盖。
07.Event接口在传入参数时不再使用“Object[]”方式,改为范型T,这样做简化了开发者在使用事件机制时各种类型转换的麻烦,从而减少错误的概率。
-----------
本次更新重点是加入了对Spring的整合支持,下面是引入Hasor 之后的Spring 配置。
何时使用Hasor的Spring整合?
在IoC和Aop的角度,Spring和Hasor 都是一套完善的解决方案,您只需要选择一个解决方案即可,只有当您正在使用Spring,或者正在使用Hasor时。需要整合对方的技术情况下才会涉及到Spring Hasor 整合。
例如,在Hasor下使用 Spring MVC。 或者是在 Spring 下使用 RSF(RSF是基于Hasor 参照淘宝 HSF 实现的一套高性能 RPC 框架)。
下面是在Spring中配置Hasor的配置信息(详细例子参见:Demo)。
Spring中使用Hasor 方式一,让Hasor加载来自Spring中配置的Module <bean id="startWith" class="net.test.hasor.spring.SpringTestModule"></bean> <h:hasor factoryID="hasor" startWithRef="startWith" /> 方式二,简化配置 <h:hasor factoryID="hasor" startWith="net.test.hasor.spring.SpringTestModule" /> 将Hasor中的Bean导出到Spring中 <h:bean id="helloString" refID="helloString" hasorID="hasor" /> <h:bean id="helloString" refType="net.test.hasor.spring.bean.HasorBean" hasorID="hasor" /> <h:bean id="helloString" refType="" refName="" hasorID="hasor"
-----------
Hasor 是一款基于 Java 语言的应用程序开发框架,它的核心设计目标是提供一个简单、切必要的环境给开发者。开发者可以在此基础上,通过 Hasor 强有力的粘合机制,构建出更加完善的应用场景。同时 Hasor 的各种内置插件也会帮助开发者进行快速开发。
设计思想
Hasor 提倡开发者充分利用编程语言的优势进行三方整合和模块化设计。同时 Hasor 也主要是通过这种“微内核+插件”的方式丰富开发所需的所有功能。
决定避开 COC 原则的原因是,COC 虽然已约定的方式降低了整个框架的设计复杂度,但同时也最大限度的牺牲了框架的灵活性。缺少灵活性的框架在应用场景上会受到极大的制约。而 Hasor 的设计则更加面向底层,因此需要更多的灵活性。
Hasor 强大的灵活性表现在模块整合能力上,对于某一个领域开发方面 Hasor 依然强调并力推 COC 。小而美的核心,大而全的生态圈是 Hasor 的目标。
架构