由于 JDK 的向后兼容的特性, 所以不存在短时间内被淘汰和升级 JDK 后不兼 容的情况,用户对框架的的要求也是一直存在的。所以
经济上完
全可行。
2.1.3 社会可行性
由于本框架是完全自行开发,并且开源,所以不存在法律上版本和专利的争 议。本框架可以使用在任何小型的使用 Java Web 开发的网站中。由于
Java 的跨 平台性,本框架可以运行在任何操作系统和服务器上。如果需要在 Windows 操作 系统下使用,那么请购买正版 Windows 操作
系统。因为本框架是用来开发 B/S 结构的系统,需要
网络,但一旦服务器连接到 Internet 上,它的操作系统可能 会被 Microsoft 跟踪,如果不是正版软件,将不得不面临民事诉讼的风险。
2.1.4 用户使用可行性
本框架的特色之一就是简单易用,只需要了解简单的 Java 建站的技术,就可 以很方便的采用它来快速的开发出一个小型个人网站。并且对 J2EE 中的很多难 点进行了屏蔽、封装,对一些常用的功能也提供了工具类,使开发者不需要掌握
3
武汉纺织大学 2010 届
毕业设计论文
J2EE 相关知识就能够进行 Java Web 的开发,所以在用户使用方面是可行的。
2.2 需求分析 2.2.1 详细调查
经过调查了解,现在越来越多的人都希望开发完全属于自己的小型网站。而 很多个人站长都选择了 PHP、Ruby On Rails、Django On Python 等各种动态语 言开发技术。因为动态语言学习曲线较低,而且开发效率高,开发成本低。能够 很快的开发出满足自己需求的优秀的网站。并且当需求改变,需要修改网站的功 能时,由于动态语言的特性,只需要修改相应的代码文件,然后刷新页面,修改 后的效果就会立即呈现出来,非常快捷、方便。 动态语言的高开发效率必定会带来性能上的低下[3]。的确 PHP、Ruby、Python 在处理较大并发访问时容易出现内存溢出等问题; 而动态语言每次运行都需要加 载源代码文件的这个特性, 虽然提供了修改
源代码后可以立即显示出改动后效果 的便利,但同时也造成了运行速度慢的问题 。并且 Ruby、Python 并没有真正 的多线程技术,它们中的线程都是基于虚拟机的伪线程而实现的,这样就会使 Ruby、Python 不能完全的利用 CPU 的资源。所以很多小型网站站长为了确保用 户访问的畅通性,不得不花费额外的费用来升级服务器硬件[5]。 Java 是一门优秀的语言,执行速度较快,完全面向对象,并且在十几年的飞 速发展中不乏各式各样成功的商业应用案例, 对于各种
问题也有丰富的解决
方案 和组件类库。但是在个人小型网站这个越来越广阔的市场中,Java 所占的份额 却越来越少。这是因为下面三个主要的原因: (1)Java 学习曲线较高:首先要
学习 J2SE 中的基础知识,然后要学习 JSP、 Servlet、JDBC 的相关知识,最后还可能需要学习 Struts、Hibernate、Spring、 iBatis、Wicket 等各
种框架。 (2) Java 的开发周期较长: Struts、 Hibernate、 Spring 都需要大量的配置, 而这些配置只要错了一个地方,整个项目就无法启动,所以开发过程中需要时刻 注意。 Java 静态语言的特性也决定了 Java 不可能像动态语言那么灵活、 而 敏捷, 所以使用 Java 来开发网站的速度较慢,开发周期较长[6]。 (3)第三方类库对服务器的空间造成了压力:Java 的开源类库非常丰富, 很多类库都是依赖于其它类库,而类库之间的互相依赖就造成只使用 Hibernate
4
[4]
武汉纺织大学 2010 届
毕业设计论文
却需要引入十几 MB,甚至几十 MB 的其它类库文件的问题。这些类库文件会给小 型网站的服务器空间造成很大的压力。 而 Grosbeak 正是为了解决上面问题而诞生的一个用于开发 Java Web 的开源 框架。 因为它采用 Java 技术实现, 所以在性能上是完全信得过的。 并且 Grosbeak 框架对 Servlet、JDBC 等技术的接口进行了屏蔽和封装,使用户不需要再学习 Servlet、 JDBC 等相关知识, 只需要了解框架本身的 API 就可以进行网站的开发, 降低了学习难度。框架封装了 MVC、DAO、IOC、JSON 等多种
常用功能,并为用户 提供了大量的反射,字符串,格式化等多方面的小工具类,使开发更加迅速。虽 然 Grosbeak 提供的功能非常多,但却没有依赖于任何第三方插件,并且框架的 大小也只有 243KB,对服务器的空间不会造成压力。
2.2.2 功能分析
Grosbeak 框架是一套完整的开发框架,包括开发过程中所用到的各项主要功 能及对一些常用操作的封装, 使用户不需要了解其它第三方组件的 API 就可以完 成一个网站的开发。框架主要包括如下功能: MVC:主要实现 MODEL2 架构,并扮演 Controller 的角色,对 Servlet 的原始 接口进行了封装和屏蔽。接受客户端的请求,然后把请求内容分发给相应的 Model 来处理,最后把处理后的结果反馈给 View(框架默认的 View 是
JSP,当 然也可以实现相关的接口来使用 FreeMaker、Velocity 等模板渲染引擎作为 View)进行展示。 DAO:主要提供对数据库进行操作的接口并对 JDBC 的原始接口进行封装和屏 蔽。框架中提供的数据库操作接口把数据库表映射到实体类,使对数据库的操作 面向对象化,并简化增、删、改、查操作。但是并没有像 Hibernate 那样鼓励屏 蔽 SQL 使用 HQL,而是鼓励使用