Skip to content

om5产品系统架构说明

一、概述

  1. om系统采用MVC结构,前后台用到的主要技术栈如下:
    系统后台:SpringMvc Hibernate(myibatis) echache + mysql+ TRS Hybase +redis
    系统前台: JSP+Jquery+Bootstrap+echarts+highcharts+easyui+layer ui
  2. 系统运行所需环境:
  • jdk1.8
  • maven3.2+
  • git 2.2+
  • idea
  • mysql 5.6

二、项目结构

一、后台资源

  1. 所有业务相关的类,都应存放在 com.trs 包下 图3
  2. 通常om平台的相关资源类都统一存放在 com.trs.om 包下,可以为每一个模块定义一个业务包 将 entity、dao、service 归类在 logic包下,将 controller 归类在 web包下,比如预警中心模块,如图: 图4

二、前台资源

  1. 所有前台资源都应存放在 webapp下,通常把 静态资源 前端组件,样式文件,图片文件存放在当前目录下
  2. 示例:把easyui、echarts 组件包存放在 webapp/static 目录下: 如图: 图5
  3. 通常把 前台页面的 jsp 文件存放在 webapp/WEB-INF/jsp 下,如图: 图6

三、配置资源

1. 系统启动版本检查文件:

webapp/WEB-INF/prerequisites.properties 图7

2. 数据库 hibernate 实体映射文件:

webapp/WEB-INF/hb3Map 示例如图: 图8

3. 海贝数据库字段映射资源

resources/hybase 示例如图: 图9

4. spring 实例注册相关资源

resources/spring 图10

5.数据库文件资源

etc/sql/MYSQL/upgrade.sql 图11

6、外部引用资源

系统把数据库配置、缓存配置、日志配置等信息从项目中单独提取出来,便于在部署实施中进行修改,在开发过程中,你需要为tomcat容器指定配置文件的路径,在启动时根据相关配置进行初始化

  • 配置示例如图: 图12
  • bin 存放用于网页截图相关进程组件
  • conf 存放om项目常用配置、缓存配置、日志配置等
  • data 存放缓存、附件等相关文件
  • idslogs ids日志目录
  • logs 项目运行日志文件

三、数据库

一、mysql

  1. 系统采用 mysql 关系型数据来保存应用中产生的结构化数据,如用户信息、角色信息、菜单信息等。
  2. 系统中mysql表 通常都以 trsom_ 开头,后续开发当中,有新的表产生,也应遵守规范,系统中非 trsom_ 开头的表是om5.0 迭代升级前的遗留,绝大部分弃用,但也存在部分表仍然使用的情况。

二、海贝数据库

  1. 海贝数据库主要负责存储大量的互联网数据,比如新闻、论坛、博客、微信、微博等。
  2. 系统业务相关主要包含
    a. 舆情信息主库 :trsom_maindb_common3,具体字段说明参见《舆情库表结构及分析.xlsx》
    b. 收藏夹库:trsom_favorites
    c. 账号库: trsom_weibo_accountinfo、trsom_weixin_accountinfo 图13

四、重点模块说明

一、系统栏目

1. 栏目定义
  1. 根据指定条件配置,以信息、图表等方式展示数据的模块称之为栏目,om系统支持多种栏目类型,比如 信息栏目、柱状图栏目、饼图栏目、趋势图栏目等等
  2. 系统栏目具有 条件灵活配置、位置灵活配置、展现形式多样等特点。
  3. 如图: 图14
2. 栏目使用
  1. 栏目详细操作,参见《TRS互联网舆情管理系统V5.0用户手册.doc》
3. 栏目开发流程
  • 栏目所在包路径,section 下包含了系统已有的众多栏目类型
    • bar 柱状图栏目
    • clu 热点聚类栏目
    • collectstat 采集统计栏目
    • epaper 电子报栏目
    • historyword 信息推荐栏目
    • hotwordAnaly 热点微博栏目
    • info 信息栏目
    • map 地域预警栏目
    • opinionIndex 舆情指数栏目
    • pie 饼图栏目
    • push 信息推送栏目
    • tag 标签统计栏目
    • tagcloud 词云分析栏目
    • topInfo     头条栏目
    • trend 趋势图栏目
    • wechat 微信信息栏目
    • weiboInfo 微博信息栏目 图15
  • 以开发信息栏目为例进行说明
    • 创建 信息栏目 包结构
      • info - logic 存放entity、dao、service,将包路径添加到spring的 resources/spring/ctx-main.xml 用于扫描注册实例 图16
      • info -web 存放 controller,将包路径添加到spring的 resources/spring/ctx-mvc.xml 用于扫描注册实例 图17
  • 因为栏目分为很多中类型,所以系统中提取出了一个 父类 section,将具有相同属性的栏目字段提取在父类中,子类继承减少冗余。
  • 当新创建一个栏目类型时,你需要进行类型注册
    • 创建 实体 InformationSection 继承 section, 注意命名规范
    • 在类头部通过 @SectionRegistration 注解填写 栏目名称,增、删、改、查的 权限路径、栏目预览图 图18
    • 将新的栏目类型添加到配置文件resources/META-INF/services,以便完成栏目类型的注册 图19
  • 创建hibernate的实体映射,注意后缀 以 hbm.xml 结尾 图20
  • 将hibernate 映射文件 添加给spring 的 resources/spring/ctx-dao.xml进行实例注册 图21
    • 在数据库中对应的栏目表
      section——> trsom_section 父类栏目表,保存栏目共有配置属性 图22 InformationSection——>trsom_informationsection 信息栏目详情表,保存该信息类型栏目特有配置属性 图23
  • 栏目对应页面 图24
    • widget-index.jsp 栏目主页面
    • widget-index-briefing.jsp 生成简报使用的栏目定制主页
    • edit.jsp 栏目修改编辑页
    • view.jsp 栏目预览也
    • widget-content.jsp 栏目模块信息页
    • widget-list.jsp 栏目信息列表页
  • 为 栏目页面引入 头部尾部公共样式菜单
    • 在 webapp/WEB-INF/sitemesh/decorators.xml 中添加 栏目访问地址 图25
  • 在管理台进行栏目配置时用到的一些页面所在位置 webapp/WEB-INF/jsp/csp/admin 图26

五、系统接口

在 src/main/java/com/trs/om/api 目录下开发

  1. 创建 继承与 HttpRequestHandler 的Handler类,并编写业务逻辑代码。 图27
  2. 在项目的 src/main/webapp/WEB-INF/web.xml 文件中创建 servlet 图28 一个 servlet-mapping 对应一个 servlet 并对应一个新建的 Handler

数据业务研发中心