1.前段框架Extjsjava
Extjs:mvvm思想: view+controller+model的设计思想;各类控件的使用和函数的编写;extjs开发中bug的处理。mysql
Ajax通讯,返回json数据sql
2.后端服务框架数据库
2.1探针收集,记录前段页面用户操做的各类信息。探针收集使用quartz定时任务。json
其中用户的信息使用bitmap数据模型进行存储,做为BI系统的数据源。后端
2.2使用mysql数据库(主从同步,读写分离)数组
使用Druid数据库链接池: 能够经过读取多个配置文件 建立多个链接对象放入链接池内。服务器
getRandomReadConnection()--读链接mybatis
getRandomWriteConnection()--写链接框架
//以写链接对象的获取为例
1.获取DataSource[]数据源数组( 根据DruidDataSourceFactory工厂类 配置文件,能够获得数据源数组 )
2.建立随机数, dataSource[iFeed % writeDataSource.length].getConnection()获取 writeConnect
2.3查询数据库数据
使用DbUtils进行查询数据库,在DbUtils的基础上封装一层,使用自定义类 ResultInfo<>
ResultInfo属性:businessCode : 业务代码;resultSet:数据集;description:描述信息; count:数据集的数目。
返回前台ResultInfo对象,Extjs经过json转为对象,填充view页面数据
其中sql本身编写,未使用mybatis进行封装
2.4Controller层
1.使用Servlet3.0 注解进行 url和servlet的映射 @WebServlet
2.BaseServlet: 每一个servlet统一继承BaseSevelt, Base 继承 HttpSevlet ,BaseSerlvet中重写service()方法,service()经过java反射进行具体的业务实现。同时BaseServlet中进行 权限控制;防XSS; Session信息判断;操做审计等统一操做。
3.自定义注解@NeedAuthentication 和 @NeedAudit 进行权限控制
4.HttpServlet的生命周期:httpServ;et包含 inti() destroy() 和 service()方法。其中 在服务器装入Servlet时 执行inti()方法,在Servlet的生命周期中,仅执行一次init()方法,咱们在inti()使用把servlet的class信息放在map中,便于后期使用;service()方法是Servlet的核心,每当一个客户请求一个HttpServelt对象是,service()方法都须要被调用;当服务器中止或者卸载Servlet时执行 destroy()方法。
2.5Service业务层
每一个具体的Service继承BaseService
BaseService中主要进行用户操做记录
1.这里主要说下 事物处理:目前都直接在业务层 经过
//开启事物
connection.setAutoCommit(false); connection.setReadOnly(false);
//事物回滚
connection.rollback();
//提交事物
connection.commit();
来进行事物处理, 目前没有使用Spring事务管理
3.1idea编辑器
4.1maven项目
5.1Git版本控制
6.1Linxu操做系统
7.1Tomcat
8.1jenkins项目发布工具