主题
om5产品系统架构说明
一、概述
- om系统采用MVC结构,前后台用到的主要技术栈如下:
系统后台:SpringMvc Hibernate(myibatis) echache + mysql+ TRS Hybase +redis
系统前台: JSP+Jquery+Bootstrap+echarts+highcharts+easyui+layer ui - 系统运行所需环境:
- jdk1.8
- maven3.2+
- git 2.2+
- idea
- mysql 5.6
二、项目结构
一、后台资源
- 所有业务相关的类,都应存放在 com.trs 包下
- 通常om平台的相关资源类都统一存放在 com.trs.om 包下,可以为每一个模块定义一个业务包 将 entity、dao、service 归类在 logic包下,将 controller 归类在 web包下,比如预警中心模块,如图:
二、前台资源
- 所有前台资源都应存放在 webapp下,通常把 静态资源 前端组件,样式文件,图片文件存放在当前目录下
- 示例:把easyui、echarts 组件包存放在 webapp/static 目录下: 如图:
- 通常把 前台页面的 jsp 文件存放在 webapp/WEB-INF/jsp 下,如图:
三、配置资源
1. 系统启动版本检查文件:
webapp/WEB-INF/prerequisites.properties
2. 数据库 hibernate 实体映射文件:
webapp/WEB-INF/hb3Map 示例如图:
3. 海贝数据库字段映射资源
resources/hybase 示例如图:
4. spring 实例注册相关资源
resources/spring
5.数据库文件资源
etc/sql/MYSQL/upgrade.sql
6、外部引用资源
系统把数据库配置、缓存配置、日志配置等信息从项目中单独提取出来,便于在部署实施中进行修改,在开发过程中,你需要为tomcat容器指定配置文件的路径,在启动时根据相关配置进行初始化
- 配置示例如图:
- bin 存放用于网页截图相关进程组件
- conf 存放om项目常用配置、缓存配置、日志配置等
- data 存放缓存、附件等相关文件
- idslogs ids日志目录
- logs 项目运行日志文件
三、数据库
一、mysql
- 系统采用 mysql 关系型数据来保存应用中产生的结构化数据,如用户信息、角色信息、菜单信息等。
- 系统中mysql表 通常都以 trsom_ 开头,后续开发当中,有新的表产生,也应遵守规范,系统中非 trsom_ 开头的表是om5.0 迭代升级前的遗留,绝大部分弃用,但也存在部分表仍然使用的情况。
二、海贝数据库
- 海贝数据库主要负责存储大量的互联网数据,比如新闻、论坛、博客、微信、微博等。
- 系统业务相关主要包含
a. 舆情信息主库 :trsom_maindb_common3,具体字段说明参见《舆情库表结构及分析.xlsx》
b. 收藏夹库:trsom_favorites
c. 账号库: trsom_weibo_accountinfo、trsom_weixin_accountinfo
四、重点模块说明
一、系统栏目
1. 栏目定义
- 根据指定条件配置,以信息、图表等方式展示数据的模块称之为栏目,om系统支持多种栏目类型,比如 信息栏目、柱状图栏目、饼图栏目、趋势图栏目等等
- 系统栏目具有 条件灵活配置、位置灵活配置、展现形式多样等特点。
- 如图:
2. 栏目使用
- 栏目详细操作,参见《TRS互联网舆情管理系统V5.0用户手册.doc》
3. 栏目开发流程
- 栏目所在包路径,section 下包含了系统已有的众多栏目类型
- bar 柱状图栏目
- clu 热点聚类栏目
- collectstat 采集统计栏目
- epaper 电子报栏目
- historyword 信息推荐栏目
- hotwordAnaly 热点微博栏目
- info 信息栏目
- map 地域预警栏目
- opinionIndex 舆情指数栏目
- pie 饼图栏目
- push 信息推送栏目
- tag 标签统计栏目
- tagcloud 词云分析栏目
- topInfo 头条栏目
- trend 趋势图栏目
- wechat 微信信息栏目
- weiboInfo 微博信息栏目
- 以开发信息栏目为例进行说明
- 创建 信息栏目 包结构
- info - logic 存放entity、dao、service,将包路径添加到spring的 resources/spring/ctx-main.xml 用于扫描注册实例
- info -web 存放 controller,将包路径添加到spring的 resources/spring/ctx-mvc.xml 用于扫描注册实例
- info - logic 存放entity、dao、service,将包路径添加到spring的 resources/spring/ctx-main.xml 用于扫描注册实例
- 创建 信息栏目 包结构
- 因为栏目分为很多中类型,所以系统中提取出了一个 父类 section,将具有相同属性的栏目字段提取在父类中,子类继承减少冗余。
- 当新创建一个栏目类型时,你需要进行类型注册
- 创建 实体 InformationSection 继承 section, 注意命名规范
- 在类头部通过 @SectionRegistration 注解填写 栏目名称,增、删、改、查的 权限路径、栏目预览图
- 将新的栏目类型添加到配置文件resources/META-INF/services,以便完成栏目类型的注册
- 创建hibernate的实体映射,注意后缀 以 hbm.xml 结尾
- 将hibernate 映射文件 添加给spring 的 resources/spring/ctx-dao.xml进行实例注册
- 在数据库中对应的栏目表
section——> trsom_section 父类栏目表,保存栏目共有配置属性InformationSection——>trsom_informationsection 信息栏目详情表,保存该信息类型栏目特有配置属性
- 在数据库中对应的栏目表
- 栏目对应页面
- widget-index.jsp 栏目主页面
- widget-index-briefing.jsp 生成简报使用的栏目定制主页
- edit.jsp 栏目修改编辑页
- view.jsp 栏目预览也
- widget-content.jsp 栏目模块信息页
- widget-list.jsp 栏目信息列表页
- 为 栏目页面引入 头部尾部公共样式菜单
- 在 webapp/WEB-INF/sitemesh/decorators.xml 中添加 栏目访问地址
- 在 webapp/WEB-INF/sitemesh/decorators.xml 中添加 栏目访问地址
- 在管理台进行栏目配置时用到的一些页面所在位置 webapp/WEB-INF/jsp/csp/admin
五、系统接口
在 src/main/java/com/trs/om/api 目录下开发
- 创建 继承与 HttpRequestHandler 的Handler类,并编写业务逻辑代码。
- 在项目的 src/main/webapp/WEB-INF/web.xml 文件中创建 servlet
一个 servlet-mapping 对应一个 servlet 并对应一个新建的 Handler