这篇是承接《轻量级 Java 开发框架 设计》系列Blog文的后续文章,本文主要介绍设计的这款框架它的架构设计要求。
轻量级是这个框架的设计要求,但是要达到真正的模块化却变得十分繁重。最后很可能导致轻量级变成重量级。因此在框架的边界设计变得尤其重要。首先明确一下设计 Hasor 的目的:
1.用于Java应用程序开发,包括但不限于Web应用程序。
2.基于主流的 IoC/Aop 模式下的开发。
3.采用注解化开发,使用配置文件支持程序动态配置部分列如:“拦截范围”、“路径”等。
4.支持定义模块,并提供模块的依赖管理。
5.要有灵活的扩展接口,方便为后续各类应用程序开发。
6.轻量化设计。
要求:
1.框架后续的所有扩展都以模块形式提供。
2.模块和模块之间可能存在依赖关系,框架要能够方便的对模块依赖进行支持。
3.不考虑 OSGi 的插件体系作为原型,能够做到按照模块依赖顺序进行排序即可。
4.IoC/Aop 应当是支持的基础,就这一点看来 Spring 的体系是值得借鉴的。
5.配置文件解析做到最简,最好开发者可以不开发任何解析器而读取 Xml 中自定义配置。
6.要有完备的日志收集功能。
7.架构上要分为两个层次去设计:核心层、模块层。
8.可以通过搭配不同的模块支持各类应用开发。
9.从结构设计上来看更像是 Spring 的翻版。需要注意 IoC/Aop 应当只是设计中的一部分,而非全部。
10.在最小依赖和零依赖的前提下。尽量摘取成熟框架的代码,避免重复造轮子。
软件各部分功能布局结构应当是下面这种方式:
----------------------------------------------------------------