这才是解锁“新闻系统模块设计”的正确使用姿势
一,新闻系统功能描述 新闻系统是常见的内容网站,如新浪新闻、搜狐新闻、凤凰新闻等。新闻网站的特点是:新闻内容对所有的访问者显示的信息一致,因此新闻页可以使用静态页面。新闻网站每天需要上线很多新闻,针对每条新闻都需要美工排版录入,显然这样做是非常低效的。 本项目就是通过后台进行新闻发布,根据新闻的模板动态生成新闻页(模板可以自由替换)。通过模板生成的新闻页,可以自动发布到新闻系统的前台。这样生成的新闻系统,新闻内容和新闻显示样式都可以灵活变化,而且由于新闻页都是静态页面,网站的访问性能也会非常高。 二,新闻系统开发架构 根据新闻系统的需求描述,软件开发架构采用如图3-16所示模式。News为新闻系统的公网站点,允许公网用户自由访问。NewsBack为新闻发布系统,它部署在企业内网中,只有新闻系统的工作人员才能访问。
图3-16 新闻系统开发架构 NewsBack系统中的newsPage目录结构与News系统中的newsPage目录结构一致,但是在NewsBack系统中的newsPage目录下增加了newsTmp目录,用于存放新闻模板页。 NewsBack系统使用SSM框架开发,首先读取各种模板页,然后从数据库提取新闻数据填充模板,最后把生成的新闻页动态发布到News系统中。 三,新闻系统主页设计 图3-17所示为新闻系统的首页样式(图片来源:新华网),设计不同的模板可以显示多种样式的主页内容。
图3-17 新闻系统首页 如 图 3-18 所 示 , 这 是 根 据 主 页 样 式 设 计 的 新 闻 系 统 首 页 模 板(indexTmp.html)。 新闻系统首页模板是普通的文本文件,就是在新闻主页index.html 的 基 础 上 , 把 动 态 数 据 全 部 删 除 , 分 别 用 @%domestic% 、@%happy%、@%internal%、@%news%、@%rightPic%等特殊占位符号进行替换,然后通过模板类读取模板数据,再动态读取数据库中的新闻数据进行填充即可。
图3-18 新闻系统首页模板 下面介绍新闻系统首页的时序图设计。 如 图 3-19 所 示 , 按 照 MVC 开 发 架 构 模 式 , 新 闻 管 理 员 发 出createAllPage()请求后,会把新闻首页和所有新闻页全部创建成功。 PageCreateAction是控制器类,用于接收客户端HTTP请求;PageCreateBiz是核 心 业 务 逻 辑 类 , 根 据 模 板 创 建 所 有 页 面 的 操 作 都 在 这 个 类 的createAllPage()方法中完成;MainTemplate是主页模板类,根据模板类生成主页静态页面;HotBiz是热点新闻逻辑类;HotDao是热点新闻持久层类,根据传入的目录id,读取该目录下的所有新闻信息。
图3-19 新闻系统首页时序图 与 图 3-19 对 应 的 类 设 计 如 下 ( 注 意 这 些 类 属 于 新 闻 发 布 系 统NewsBack)。 (1)PageCreateAction是控制器类。
(2)PageCreateBiz是核心业务逻辑类。
(3)MainTemplate是主页模板类。
(4)HotBiz是热点新闻管理的逻辑类。
(5)HotDao是操作热点新闻的持久层类。
四,新闻目录列表页设计 单击新闻系统主页的新闻目录名称,可以进入新闻列表页(如图3-20所示,图片来源:新华网)。新闻列表页的内容需要动态变化,因此设计为动态的JSP页面。 为了提高新闻列表页的访问性能,新闻数据需要上传到Redis数据库,新闻列表数据从Redis中提取,但是新闻列表页中的每个新闻页都是模板生成的静态页面。
图3-20 新闻列表页 新闻列表时序图设计如图3-21所示。
图3-21 新闻列表时序图 新闻列表类图设计如图3-22所示。 与图3-22对应的新闻列表OO代码设计如下(注意这些类属于新闻系统News)。 (1)NewsAction为控制器类。
图3-22 新闻列表类图
(2)NewsBiz为业务逻辑类。
(3)持久层类NewsDaoRedis从Redis中提取新闻数据。
(4)newsList.jsp显示新闻列表,每条新闻的链接指向静态HTML页。
五,新闻页设计 图3-23所示为新闻页的显示样式,新闻页中包含文字信息和图片。因为新闻页对所有用户的显示内容一致,因此使用静态页面。
图3-23 新闻页样式 新闻页通过模板在新闻发布系统中生成,然后推送到新闻系统中。新闻页模板的设计如图3-24所示。
图3-24 新闻页模板 下面介绍新闻页时序图的设计。 如 图 3-25 所 示 , 按 照 MVC 开 发 架 构 模 式 , 新 闻 管 理 员 发 出createAllPage()请求后,会把新闻首页和所有新闻页全部创建成功。 PageCreateAction是控制器类,用于接收客户端HTTP请求;PageCreateBiz是核 心 业 务 逻 辑 类 , 根 据 模 板 创 建 所 有 页 面 的 操 作 都 在 这 个 类 的createAllPage()方法中完成;NewsTemplate是页面模板类,根据模板类生成新闻页的静态页面;NewsBiz是新闻逻辑类,NewsDao是新闻持久层类,调用getPrePublishNews(),读取所有状态为1的待发布的新闻(新闻创建页创建成功后,会把新闻状态设置为0)。
图3-25 新闻页时序图 与图3-25对应的新闻页的部分OO代码设计如下(NewsBack系统)。 (1)PageCreateAction为控制器类。
(2)PageCreateBiz为核心业务逻辑类。
(3)NewsTemplate为新闻模板类。
(4)NewsBiz是新闻逻辑类。
(5)NewsDao为新闻持久层类。
六,新闻评论页设计 如图3-26所示,这是新闻评论页的样式。单击图3-24新闻页上的“用户评论”按钮,即可进入新闻评论页。注意:新闻页是静态的HTML页面,但是新闻评论页的内容是动态变化的,因此使用JSP页面。 新闻评论页的时序图设计如图3-27所示。 注册用户才能提交新闻评论。注册用户单击“用户评论”按钮,进入新闻评论页。按照MVC的开发架构,NewsAction是控制器类,PlunBiz是评论的业务逻辑类,PlunDao是持久层类。
图3-26 新闻评论页样式
图3-27 新闻评论页时序图 与图3-27对应的新闻评论页的OO代码设计如下(News系统)。 (1)NewsAction是控制器类。
(2)PlunBiz是评论逻辑类。
(3)PlunDao是评论的持久层类。 七,新闻发布设计 新闻发布是一个自动部署过程,主要操作步骤如下。 (1)进入新闻发布系统(NewsBack)的发布页,单击“打包”按钮,把当天生成的所有新闻页面进行打包。页面打包调用Zip工具包,生成news.zip,压缩包存放在目录/NewsPublish下,页面打包成功,打包信息记录在打包日志中。 ( 2 ) 单 击 “ 发 布 ” 按 钮 , 由 NewsBack 系 统 访 问 News 系 统 的NewsSynchroAction的newsDataUpdate.do,发出页面发布的请求。 (3)News系统接收到新闻更新请求,从NewsBack的指定路径下载news.zip,然后自动解压到目标路径,实现页面的动态更新。 新闻发布过程中,需要新闻页面的打包与解压操作,这些操作封装在工具 类 ZipUtil 中 , 核 心 代 码 如 下 ( 注 意 压 缩 与 解 压 使 用 的 包 为Java.util.zip.*)。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/47327.html