SQL,因为直接执行原始的 SQL 语句能够提高效 率。 IOC:依赖控制反转容器,主要用来管理所有的类和对象。并对单例对象进行 了缓存,以提高性能。还提供了“Hook(钩子、回调) ”功能,可以对容器中的 对象进行筛选,筛选过程是在第一次加载 IOC 配置文件时进行的,并且只筛选一 次,不
会对运行中的系统有性能上的影响。 JSON:JSON 解析器,主要完成 Java 对象和 JSON 字符串之间进行序列化与反
5
武汉纺织大学 2010 届毕业设计论文
序列化功能。 Lang:一系列的工具类,以提高用户的开发速度。对 Java 中的反射机制、字 符串、文件流实现了封装,使用户基本感觉不到 Java 是一门静态语言。 Castor:转换器,用来完成 Java 不同类型之间的转换功能。框架内置多种常 用的转换器,这些默认转换器基本可以满足一般需求。如果有特殊的转换需求, 也可以在 IOC 中加入自定义的转换器,Castor 会自动识别,并将其加入到默认 转换器中。 Logger: 主要完成日志记录功能, 框架中默认的日志记录是通过 System.out. print 进行输出。但是对 JDK 的 Logger 和 Log4j 都提供支持。Logger 优先采用 Log4j 完成日志功能,如果没有 Log4j 则采用 JDK 自带的 Logger,如果还没有 Logger,则采用框架默认的日志实现类。
2.3 组件依赖分析
Grosbeak 是由多个功能组件组合而成,而这些组件也可以单独使用,但是组 件之间存在一定的依赖关系。例如:使用 MVC 功能组件时就必须把 Lang 功能组 件添加到 CLASSPATH 中,因为 MVC 功能组件中的部分功能的实现是依赖于 Lang 功能组件的。 详细的组件包之间依赖关系如表 2-3 所示:
表 2-3 组件包依赖关系表 包名 org.atlantis.grosbeak.cable.* org.atlantis.grosbeak.castor.* org.atlantis.grosbeak.depot.* org.atlantis.grosbeak.json.* org.atlantis.grosbeak.lang.* org.atlantis.grosbeak.logger.* org.atlantis.grosbeak.plugin.* org.atlantis.grosbeak.pot.* 描述 MVC 框架,并提供 Controller 功能 对象类型转换框架 IOC 容器框架 JSON 解析组件 常用工具类组件 日志记录组件 插件机制组件 DAO 持久化框架,简化数据库操作 依赖 lang、depot lang lang、json lang 无 lang、plugin depot lang、depot
6
武汉纺织大学 2010 届毕业设计论文
2.4 请求流程分析
从用户通过浏览器发起请求到返回处理结果给用户的流程如图 2-4 所示:
图 2-4 请求流程图
3 框架设计
3.1 技术设计
框架的开发技术采用 Java 语言,因为 Java 的性能非常优秀、完全面向对象, 并且在 Web 方面的开发案例非常丰富。只是由于它学习成本高,开发周期长,最 近 4 年受到动态语言的强烈冲击,所以才在小型网站开发领域显露疲态,而 Grosbeak 框架正是为了解决上面的问题而诞生的。所以框架采用 Java 作为开发 语言。
软件测试是保