首先引用Wiki的介绍一下Hasor:
“Hasor是一款开源框架。它是为了解决企业模块化开发中复杂性而创建的。Hasor遵循简单的依赖、单一职责,在开发多模块企业项目中更加有调理。然而Hasor的用途不仅仅限于多模块项目开发。从简单性、松耦合性的角度而言,任何Java应用都可以从中受益。Hasor与Struts,Hibernate等单层框架不同,它可以提供一个以统一、高效的、友好的方式构造整个应用程序。并且可以将这些单层框架建立起一个连贯的体系,可以说Hasor是一个搭建开发环境的框架。这一点与Spring比较相似,您可以理解Hasor可以作为Spring之外的一种选择。”
原则:引用Wiki
简单、清晰、可靠、方便、快捷,可以说是Hasor在设计所有模块时的目标。Hasor从现在到未来都会遵循下面这些原则。
- 用最简的实现提供最有用的功能,不做过度设计。
- 模块职责单一化、简单化。不做“全能模块”。
- 尽量在为开发者提供一个友好、简单的API。
有关Hasor生命周期的介绍:http://my.oschina.net/u/1166271/blog/143873。
有关Cache使用方式可以看这里:http://my.oschina.net/u/1166271/blog/144430。
你可以关注我的Blog:http://my.oschina.net/u/1166271,已得到有关Hasor更多的信息和开发进度。预计八月中旬或下旬hasor发布第一版。
hasor-core 功能统计:
- 每个模块都具备init、start、stop、destroy,四个生命周期,和一个准备阶段方法。
- 每个模块可以在模块准备期对其配置与其它模块的依赖关系(代码形式)
- 支持模块循环依赖检测,并指出出现问题的模块依赖位置。
- 支持同步事件处理和异步事件处理,在高级事件接口中还可以注册Timer和其他事件高级操作。
- 支持java或系统环境变量读取操作,Hasor在启动时会打印环境信息。
- 主动检测配置文件改变,并且通知开发者做连带更新。
- 内置一个默认的Timer计时器部件。
- 注解化Bean,可以像spring的 getBean一样获取对象。
- 不同配置可以放到不同命名空间下
- 通过Guice可以实现Aop等Guice支持的功能。
hasor-servlet功能统计:
- 支持注解化Filter、Servlet、 、SessionListener、WebError。
- 内置了一个controller模块,是一个MVC框架。支持action.do形式注册action,也支持rest风格映射(rest方式和spring的风格很像)。
- controller模块支持action结果自定义处理(使用注解注册处理函数)。
- resource模块支持载入Classpath、FilePath、Zip中的资源文件,这些资源文件可以不在webapp中。
hasor-freemarker功能统计:
- 与Web无关的freemarker深入包装模块。
- 使用Tag和Tag2接口方便开发freemarker标签。
- 使用注解注册任意方法为freemarker函数。
- 通过hasor-config.xml配置freemarker的配置
- freemarker的模板可以存放于Classpath、FilePath、Zip中的任意一个位置。
hasor-icache功能统计:
- 支持注解方式对方法或类进行标记,标记的类或方法。其方法返回值会被缓存。
- 内置了一个HashMap缓存,在配置文件hasor-config.xml中可对其进行配置。
- 支持注册用户自定义缓存服务,并且可以设置名称。
- 支持声明默认缓存服务。
- 支持通过@Inject加@Named方式获取指定名称的缓存服务。
hasor-web-security功能统计:
- 支持URL权限访问控制。
- 支持方法权限访问控制。
- 支持多用户登陆。
- 支持多认证系统。
- 支持来宾账户。
- 支持临时加减用户权限。
- 支持Cookie加密。
- 加密算法支持自定义,内置了4种加密方式。
- 权限数据使用缓存作为数据容器。
- 支持权限规则,根据规则对不符合权限的请求进行转发或报异常。
hasor-web-view功能统计:
- web上使用freemarker作为模板引擎。
- 与hasor-servlet合用可以完美搭建一个MVC开发环境。
引用来自“java10001”的评论
ok, 有时间再看看,好的框架在于持续的坚持和推广
引用来自“lxbzmy”的评论
问一句,hasor遵循了那些标准?还是自己又建了一套?
目前hasor-core 通过Guice支持JSR-330标准。hasor-servlet的controller模块正在考虑兼容JSR-311,此外其他java标准或规范也有考虑遵循或兼容。
但是Hasor在发展初期并不以兼容标准为首要目标,它的首要任务是提供一个简易的开发环境。hasor对于各种标准的支持可以通过提供一个模块集成第三方框架来实现。
在hasor发展初期这样做可以降低hasor的开发成本和维护成本,从而也可以更方便的扩充其功能领域。
引用来自“撒旦他舅爷”的评论
框架层出的年代 我用气功点死了人