bbs(国漫社区)开发文档 - 图文 联系客服

发布时间 : 星期二 文章bbs(国漫社区)开发文档 - 图文更新完毕开始阅读42e9dc4af7ec4afe04a1df31

Cmbbs设计文档

图5.1 S.S.H框架的结合使用

5.1.1底层数据库的建立

在前期的数据库选用中,本系统选取了灵活高速的 MySQL数据库,而在数据库的设计中,本文已经确立了表结构. 根据这些就可以创建一个数据库,在数据库创建并连接好后,就可以创建表、修改表和删除表,创建、修改、和删除主键、外键等等。选中“cmbbs”数据库,use database并使用Create table<表名>Sql语句,依次创建以下表结构。由于考虑到本系统是应用在单机系统上,另外根据管理的规模,我们只建立一个数据库,在此数据库基础上建立。

5.1.2持久化层的建立(hibernate)

典型的Web应用的另一个末端是持久层。Hibernate为java提供了OR持久化机制和查询服务, 它还给已经熟悉SQL和JDBC API 的Java开发者一个学习桥梁,他们学习起来很方便。 Hibernate的持久对象是基于POJO和Java

25

Cmbbs设计文档

collections。此外,系统建立Hibernate的持久层 。 首先把BO持久化。 Hibernate是通过POJO工作的, 因此数据对象需要给所有的fileds 加上getter,setter方法。 Hibernate通过XML文件来映射(OR)对象,以下xml文件分别映射了相应对象:

本系统可以在com.cmbbs.bean目录下找到这些xml文件。Hibernate配置文件的作用用来告诉程序 应该与哪个数据库通信,该使用哪个连接池或使用了DataSource, 应该加载哪些持久对象。而Session接口是用来完成Selecting,Saving,Delete和Updating这些操作。

26

Cmbbs设计文档

图5.2 Forum0.hbm.xml 映射文件

5.1.3业务逻辑层的建立

本系统的业务逻辑是交由struts中的Action进行判断的,比如判断登陆的业务逻辑时,会建立一个LoginAction类来进行逻辑判断,而一些关联的映射,cmbbs系统是写在struts框架的struts-config.xml中。

27

Cmbbs设计文档

图5.3 struts-config.xml 映射文件

从编码的视角来看,这层是最容易被忽视的一层。 却往往在持久层周围看到这些业务处理的代码,这其实是不正确的,因为它导致了程序代码的紧密偶合,这样一来,随着时间推移这些代码很难维护。幸好,针对这一问题本系统可以使用Spring框架来解决.spring框架都着手于“依赖注射”(dependency injection)(还有我们知道的‘控制反转'Inversion of Control=IoC)这样的简单概念。Spring还提供了Setter Injection(type2),Constructor Injection(type3)等方式供选择。 Spring把程序中所涉及到包含业务逻辑和Dao的Objects——例如transaction management handler(事物管理控制)、Object Factoris(对象工厂)、service objects(服务组件)——都通过XML来配置联系起来。这种方式让你的对象从创建中释放了出来,降低了偶合度.

每个对象都可以在Spring 配置信息applicationContext.xml中用标签引用。在这里,mySessionFactory引用了HibernateSessionFactory,而myTransactionManager引用了HibernateTransactionManage。 代码中myTransactionManger

Bean

sessionFactory

HibernateTransactionManager有个sessionFactory setter 和 getter方法,这是用来在Spring启动的时候实现\依赖注入\(dependency injection)的。 在sessionFactory 属性里 引用mySessionFactory。这两个对象在Spring容器初始化后就被组装了起来了。 这样的搭配让你从 单例(singleton objects)和工厂(factories)中解放了出来,降低了代码的维护代价。 mySessionFactory的两个属性,分别是用来注入mappingResources 和 hibernatePropertes的。

5.1.4表示层的建立

在表示层上,主要是基于JSP和AJAX异步传输技术来进行建立,最后通过Struts 框架的struts-config.xml文件进行关联映射.具体的页面设计,会在后面的章节中进行介绍。

28