1.前段框架Extjs
Extjs:mvvm思想: view+controller+model的设计思想;各种控件的使用和函数的编写;extjs开发中bug的处理。
Ajax通信,返回json数据
2.后端服务框架
2.1探针收集,记录前段页面用户操作的各种信息。探针收集使用quartz定时任务。
其中用户的信息使用bitmap数据模型进行存储,作为BI系统的数据源。
2.2使用mysql数据库(主从同步,读写分离)
使用Druid数据库连接池: 可以通过读取多个配置文件 创建多个连接对象放入连接池内。
getRandomReadConnection()--读连接
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项目发布工具