Hasor 2.2.0 正式发布,完美与Spring整合

时间:2017-06-16 09:58

Hasor 2.2.0 正式发布,完美与Spring整合

哈库纳

哈库纳 发布于2016年02月25日 收藏 28

玩转软件开发云,集华为近30年研发精华开发神器!>>>  

===== 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 的设计则更加面向底层,因此需要更多的灵活性。