Hasor使用手册(第一章:介绍)

1.1 介绍

    Hasor是一款开源框架。它是为了解决企业模块化开发中复杂性而创建的。Hasor遵循简单的依赖、单一职责,在开发多模块企业项目中更加有调理。然而Hasor的用途不仅仅限于多模块项目开发。从简单性、松耦合性的角度而言,任何Java应用都可以从中受益。Hasor与Struts,Hibernate等单层框架不同,它可以提供一个以统一、高效的、友好的方式构造整个应用程序。并且可以将这些单层框架建立起一个连贯的体系,可以说Hasor是一个搭建开发环境的框架。这一点与Spring比较相似。Hasor目前包含多个可选的子模块。

特点:

  • 清晰:在Hasor体系中每一个模块都被封装到一个jar或者classpath路径中。
  • 简单:少量的代码开发关键的部件,Hasor在开发上提供了强有力的粘合作用。此外,由于Hasor对外开发都是以接口形式提供开发者避免接触到大量无用的API。
  • 容器:Hasor包含并管理每个模块对象的配置和生命周期。
  • 轻量:利用Guice3.0强大的DI支持使得Hasor的运行效率很高,另外Hasor的依赖也只有5个Jar。
  • 友好:Hasor的所有功能仅在几个核心API接口和注解上实现。
  • 兼容:对Web情况下进行了特殊制定,在开发Web项目时候可以得到更加友好的API支持。由于Hasor仅仅是一个轻量化容器,这又使得它可以很方便的和任何框架整合到一起。

模块:

Hasor-Core
    核心包,所有Hasor模块都必须依赖它。对模块提供生命周期管理;以Settings接口形式提供配置文件获取服务;对主配置文件提供检测修改的支持;提供事件服务;提供环境变量操作接口;提供了Timer支持;提供了IoC/Aop。
    Web支持下,可以注解声明Filter、HttpServlet、Session监听器、Aop拦截器;还提供了Servlet异常拦截器。通过Guice支持JSR-330。

Hasor-MVC
    一个专门用于Web开发的模块,它提供了一个用于MVC模式下开发的请求控制器,通过它可以定义Action,并且可以将这个Action映射为RESTful,其API部分实现了JSR-311。
    还有一个类路径资源装载器,用以加载位于Jar包中的资源。

1.2 概述

    第一章是用以说明Hasor这个项目的功能、目的以及设计思想。同时说明了Hasor所使用的开源协议、类库以及如何贡献和索取Hasor代码。

    第二章是引导读者使用Hasor进行项目开发,其中会包含丰富的Demo和API讲解。这一章节不会深入介绍Hasor部内部实现机制和原理。但是在第二章上会有许多知识点链接到第三章.

    在第二章有兴趣的读者可以跟随链接深入了解Hasor内部实现机制和各部分功能原理。这些内容都在第二章以后的内容中出现。从第二章开始一直到第七章都是在详细讲解Hasor各个部件的功能和实现机制以及原理。

    第八章之后会根据不用模块分别讲解各自模块下的功能。

1.3 开源协议

    作为开源发布Hasor使用是Apache License 2.0协议。

1.4 内置组建及其授权协议

More
    More是我在2008年之后构建的第一款开源框架,当时以失败告终。而后More的大部分代码都被拆除或者改造。目前保留下来的只有ClassCode、Xml以及一部分位于util包中的工具类。
    目前util包中的工具类大部分也已被Apsche的commons-lang、commons-beans项目中的代码所替代。该项目受Apache License 2.0协议保护。

ASM 3.0
    ASM是一款字节码框架,使用它可以动态的创建或修改java类文件。配合ClassLoader可以装载修改之后的类Hibernate、Spring都曾使用过它。该框架的部分完成代码位于org.more.asm软件包中,Hasor并没有使用到这个软件包。并且ClassCode组建作为More项目保留组建而存在。软件地址:(http://www.objectweb.org/asm)。

Ognl
    Ognl是一款表达式解析引擎代码位于org.more.ognl软件包中,Hasor并没有使用到这个软件包。软件地址:(http://commons.apache.org/proper/commons-ognl/)
这部分内容是受Apache License 2.0协议保护。

apache-commons-lang 2.6、apache-commons-beans 1.7
    org.more.convert软件包的内容是来源于apache-commons-beans-1.7,org.more.util的大部分代码是来源于apache-commons-lang-2.6。Hasor并不引用这两个软件包,但是由于org.more中包含了相关代码因此在这里需要加以说明并且列出其授权信息。这部分内容是受Apache License 2.0协议保护。

org.more.json软件包
    该软件包是来源于org.eclipse.jetty.util_8.1.3.v20120522.jar,位于Eclipse eclipse-sdk-4.2.2-win32软件中,属于Eclipse 4.2.2的一部分。Hasor-mvc项目依赖这部分功能实现Json数据转换。该代码受到受Apache License 2.0协议以及Eclipse Public License协议共同保护。

Apache License 2.0协议:(http://www.apache.org/licenses/LICENSE-2.0)
Eclipse Public License协议:(http://www.eclipse.org/legal/epl-v10.html)
ASM3.0协议:(http://asm.ow2.org/license.html)

1.5 获取和贡献

目前Hasor的代码托管于Github(https://github.com/zycgit/hasor),您可以通过Git客户端获取到Hasor的最新代码。可以在(http://msysgit.github.io/)上获取到最新的Git客户端。当您对Hasor有一个更好的改进或想法,可以通过([email protected])邮箱联系到我也可以通过(https://github.com/zycgit/hasor/pulls)递交您的代码。

当您发现Hasor的漏洞和不足可以通过Email联系我。或者在OSChina上发表技术问答。Issues(https://github.com/zycgit/hasor/issues)也是一个发表问题的渠道。或者加入QQ群(293401803)我会为你解答疑问。

项目主页为:http://www.hasor.net/ [尚在建设中...]

1.6 类库引用

依赖:Hasor依赖以下4个软件包:
slf4j-api-1.7.5.jar (负责输出Hasor产生的日志)
guice-3.0.jar (Guice3.0,负责提供DI相关的支持)
aopalliance-1.0.jar (Aop联盟API,Guice依赖)
javax.inject-1.jar (JSR-330标准,Guice依赖)
日志:如果使用log4j作为日志组建那么需要加入以下两个jar文件,log4j.xml是参考:
log4j-1.2.17.jar (log4j库文件)
slf4j-log4j12-1.7.2.jar (slf4j-log4j的适配器)
log4j.xml (参考的log4j配置文件)

1.7 约定优于配置(COC原则)

    约定优于配置(Convention Over Configuration)是一个简单的概念。系统,类库,框架应该假定合理的默认值,而非要求提供不必要的配置。流行的框架如 Ruby on Rails2 和 EJB3 已经开始坚持这些原则,以对像原始的EJB 2.1规范那样的框架的配置复杂度做出反应。一个约定优于配置的例子就像EJB3持久化,将一个特殊的Bean持久化,你所需要做的只是将这个类标注为@Entity。 框架将会假定表名和列名是基于类名和属性名。系统也提供了一些钩子,当有需要的时候你可以重写这些名字,但是,在大部分情况下,你会发现使用框架提供的默认值会让你的项目运行的更快。

    Hasor的各个模块都拥有很多配置,但是在您使用Hasor作为开发框架的时候可能会发现,你甚至都不需要对Hasor进行任何配置就可以进行开发工作。Hasor会将COC原则一直传递下去。

你可能感兴趣的:(Web,日志,模块,开发框架,手册,Hasor,工作记录,第一章)