项目总结电厂安全培训管理系统总结iaohi

第一个项目开发也有将近半年了,这也是自己的第一个比较成熟的系统,项目从刚开始的8个人到最后的三个人,开发团队的人也越来越少,系统也越来越成熟。中间开发也遇到了大量的问题,尤其在开发考试与试卷管理,由于界面交互太复杂一个JS可以上千行。17年11月中旬系统的第一次上线,我带着服务器到机房给客户安装部署好之后,客户的需求发生了很大的变化,直到18年元旦之后,系统才算正式开发完成,中间在客户的地方开发了将近20天,每天与客户沟通完需求之后进行开发,同时也要不停的修改别的代码,也真正理解到清晰的思路与清晰的代码的重要性,指不定哪天别人会修改你的代码,所以最好是将代码写的清除点,乱七八糟的代码容易暴露自己的实力。项目也逐渐成熟,直到项目后期才真正使用上git,刚开始人多只是不停的写代码,写完之后手动合并代码浪费了大量的时间。到客户的地方开发才使用上git,也理解了git的强大。

一、项目描述

开发环境:Eclipse+Jdk1.7+Git+Spring3.2+struts2.3+mybatis3.2+shiro1.3+mysql 5.7

前台技术:bootstrap+Easuui的分页插件+zTree树插件+jedate日期插件+kindeditor文本编辑器插件+其他

硬件:研腾身份证识别仪、南昊判卷机、指纹识别仪、人脸识别仪

项目描述:电厂安全培训管理系统是一个用于电厂进行培训的系统,主要是考试与成绩管理。考试可以分为在线考试与线下考试,在线考试就是登录系统之后在线考试,考完之后系统自动给出成绩,线下考试是将试卷导出成pdf进行线下考试,并用判卷机进行判卷之后将成绩导入系统。辅助的功能有部门管理与人员管理、违章管理。权限管理是系统的一大难点,采用了shiro框架,对不同的用户显示不同的菜单与显示界面上不同的按钮,也就是不同的用户可以看见不同的菜单,也可以看见不同的按钮。

菜单后台主界面:(主要模块)

二、前台总结:

前台技术:bootstrap+Easuui的分页插件+zTree树插件+jedate日期插件+kindeditor文本编辑器插件+其他

前台学到最多的是jQuery的使用以及ajax的使用,项目中大量的使用异步请求数据,使用了jQuery封装的三种ajax:

前台学到的主要开发思想:打开模态框之前清除之前的废旧数据,分页点击的时候带着条件去查询(将当前页与页大小存到页面的隐藏域),有时候reset按钮不能清空隐藏域,最可靠的办法就是将需要被清空的东西加个特殊的class,点击清除的时候清空所有的带class的。

--------------------jQuery封装的三种ajax:---------------------------------

第一种:    $.ajax

第二种:$.post

第三种:  $.get

------------常用的jQuery的选择器=---------------------------------

三、后台总结:

后台技术:Eclipse+Jdk1.7+Git+Spring3.2+struts2.3+mybatis3.2+shiro1.3+mysql 5.7

大致的配置过程:

配置数据库配置文件存放位置、将连接池放入spring容器(数据源)、配置mybatis会话工厂、配置mybatis扫描的基本包、配置事务管理器、配置事务模板对象、配置事务通知、将通知织入切面、配置扫描service与Action的包

与接口对应的mapper(开启二级缓存)

mybatis开启二级缓存的配置:(与encache整合      默认就是开启)

<setting name="cacheEnabled" value="true"/>

encache缓存的配置:

struts一个模块的配置:

shiro缓存配置

项目在使用mysql的过程中也遇到了好多问题,并通过各种手段解决了这些问题。

1. 索引:

在查询的时候有时候特别慢,通过项目也了解到索引的重要性,索引是真实存在于表中的,

mysql有哪些索引类型:

数据结构角度上可以分:B+tree索引,hash索引,fulltext索引(innodb,myisam都支持)

存储角度上可以分:聚集索引,非聚集索引

逻辑角度上可以分:primary key,normal key,单列,复合,覆盖索引

2. 触发器:

下面是项目中的一个触发器:

3.存储过程

下面是项目中的一个不带输入输出参数的存储过程:

4.事件与任务调度

事件使用的前提是开启任务调度:

第一个:每秒钟都执行修改状态的存储过程:

更新状态的存储过程:

一个每秒钟执行一次的事件调用上面的存储过程:

第二个:每年的1月1日清空积分

存储过程:

每年的1月1日执行的事件调用上面的存储过程:

5.其他:

中文排序:

五、部署与优化

服务器配置:windows server 2012   64G运行内存

(1)并发优化

(2)JVM优化

在开发当中,当一个项目比较大时,依赖的jar包通常比较多,我们都知道,在应用服务器启动时,会将应用引用到的所有类通过ClassLoader 依次全部加载到内存当中。Java的逻辑内存模型大致分为堆内存、栈内存、静态内存区,也称持久区,该区的内存不会被GC回收。堆内存用于存储类的实例、 数组等引用类型数据,也就是用new生成的对象,都存放在这里,栈内存存储局部变量(如:方法参数),静态内存区存储常量、静态变量、类元数据信息(方 法、属性等)。开发当中常遇到的三类内存溢出异常:

优化方法:

如果是Windows配置服务式的参考我的另一篇博客:

(3)数据库连接池c3p0配置

spring配置:

整个开发也经历了将近半年,学到的更多的是开发思想与一些常用的开发技术,在平时开发中也都记录下来啊了。

一个牛逼的程序员不仅是每天是敲多少行代码,更重要的是每天能学到多少,要时刻保持清晰的思路,养成良好的编程思路。

THE END
0.关于2022安全培训工作总结8篇安全培训(Safety Training)是安全生产管理工作中一项十分重要的内容,它是提高全体劳动者安全生产素质的一项重要手段。下面是小编给大家整理的2022安全培训工作总结,仅供参考希望能够帮助到大家。 2022安全培训工作总结1 现将我校有关人员参加__年全国中小学校长校园安全管理国家级远程专题培训情况总结如下: jvzquC41yy}/z~jzkng/exr1|l€pppokg1i27:>7444ivvq