IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 我的第一份实习!!! -> 正文阅读

[Java知识库]我的第一份实习!!!

抱着兴奋的心情,我于大二开始了我的第一份实习!!!实习的岗位是java后端实习生!!!

现在主要是记录一下我在实习期间的工作,以便留下纪念,让以后能够有个美好回忆。

一:oa系统可视化版:

流程控制,发起流程,根据业务需求变动改动页面表单的控件,权限,以及流程的走向等(已有可视化工具,可直接拖拽,鼠标点击等完成操作,关键点是要理解业务需求,了解业务流程,以及熟系系统是如何操作的)

工作内容:审批表单增加一些控件,如下拉列表,然后根据下拉列表中的值判断走哪条流程,然后还有对一些控件添加一些权限区段,如对应环节只能读不能写,又或者只能写不能读等,或者增加一些属性变更,也就是选择了某个下拉选项,某个控件就隐藏或者显示,由于是可视化的方式,所以表单控件的操作就比较简单,但是流程的配置会难一点,对业务的熟系程度要求比较高

二:oa系统代码版:

流程控制,发起流程,与上述那个系统的功能差不多,但是该系统的表单控件,页面,流程的走向等所有的功能都是由自己手写代码实现的,比如增加某个表单控件,就要写真实的代码,而不能通过拖拽等方式了,不过该系统也是一个相对完善的系统,有一些流程是可以通过系统配置生成的,比如增加某些业务代码。增加审批环节,增加审批组以及绑定审批人等(一个业务编码即对应一条流程),但是由于是在测试环境下先行测试开发的,所以要保留数据库脚本,一般是通过sql语句完成对应的数据的增加,如业务编码,然后把sql脚本保留下来,上线时在生产环境运行一下脚本(上线是增量修改的形式),这个工作难点不仅在于了解业务流程,还要了解该系统的代码工作原理,相应功能对应的相应代码,相应功能是如何实现的等,简而言之,就是要熟悉系统的代码,不然没有办法进行系统的开发。该系统相对比较旧,代码也相对比较难看懂,而且这是一个单页面应用,找路径比较麻烦(基于SSH框架的前后端不分离系统)

工作内容:

1.在所有的新增流程页面里面增加一个单点登录到其他系统的按钮,由于jsp页面是通过包含引入的,所以改几个jsp页面,增加一个按钮,然后绑定点击事件就可以了,单点登录功能比较麻烦,需要拿到token之类的,但是可以参考相应的代码,所以就需要理解代码以及对应功能的实现

2.还有添加一些控件,控制下拉表单,选择不同的选项,显示不同的表单控件,并且表单控件在其他页面是不可以出现的(页面很多是复用的,所以很容易造成改一处,变多处的效果),功能如果单个拿出来是不难实现的,但是要在该系统中实现,就要理解好原来代码的逻辑,然后在原来的代码上修改一下代码

3.还有一个要增加一个新的公司,然后给该公司增加新的业务,该业务可以参考其他公司的业务,但是又有所不同,这个对业务的了解要求最高,需要自己在数据库中手动增加对应数据并配置业务流程的走向,然后保留数据库脚本。流程是通过进入新增流程页面,通过某些选项,如下拉表单中的选中确定的,如通过下拉表单,选择不同的选项来找到不同的业务编码,进而找到对应的流程(一般是进入页面前就通过关键字找到该业务的所有流程,然后在页面里面通过不同的操作,就会发起不同的流程),还有如通过配置生成新的菜单项,下拉列表项等,因此也是要理解整个业务中各个功能是如何实现的,以及数据是如何获取到的,如何生成的,在哪个表获取的,通过什么参数,什么方法,什么逻辑获取的等。这个需求比其他需求都要难,要对业务以及系统代码熟悉才可以做。

4.修改该系统代码原有的bug。一开始做的时候开发者没有考虑到发起流程的人选择下一节点的处理人是多个的场景,因此当发起时,下一处理人为多个时就会出问题(流程撤回后,无法重新发起),要完成也是要看懂原有的代码,理解代码逻辑是如何判断能否撤回,能否重新发起,撤回后数据如何变化等。

该系统使用的框架是SSH框架,并且系统也有一些数据,变量,参数名的命名规则,对数据库的查询操作很特殊(通过对对象的属性赋值来完成查询),比较难看懂,而且访问路径与对应处理的方法也有一定的规则。

三::二次开发系统

通过网上找的系统框架,进行框架的二次开发,该系统使用的技术比较新,相对于oa系统,读起来要容易很多。该系统的主要难点就是需要掌握相对比较新的技术,如vue.js,SpringBoot,MybatisPlus等、主要工作就是完成一些新加的功能,完成这些功能对业务流程的要求没有前面两个系统的高

工作内容:

1.完成excel数据的导入功能,有代码可以参考,系统原本是有导出功能的,参考即可,但是需要了解前端vue.js(前端需要做页面交互,如导入的类型等)以及后端SpringBoot,MyBatisPlus

2.导入的数据展示在页面需要像在excel中一样,点击单元格,就可以进行数据的修改,在网上找了个基于vue.js的插件,vuex-table实现了

3.要完成数据修改信息的收集,就是在页面修改了数据,需要收集这些修改的欣喜,如修改了什么,对应哪个表,哪个字段,修改前是什么,修改后是什么等,这里使用了反射去做,拿到class对象,遍历判断属性,以及拿到对应的属性值,还有获取类上的注解来获取表名等

总结:

1.业务流程十分复杂,负责人讲述过后一定要做笔记记录梳理一遍,没理解的及时问回负责人,不然很容易一头雾水,并且不知如何下手,甚至理解错需求

2.读代码能力很重要!!要快速读懂别人的代码,能够去了解功能与代码的对应实现

maven项目入手:二话不说先启动项目,然后所有功能点一下,了解系统有什么功能,然后再看源码,先看pom文件,pom文件有该模块的简述,然后再看看引入了什么依赖就可以大致了解该模块了,然后再具体到源码,如果源码理解不了,可以打断点,debug一下。读该oa系统就比较麻烦(不是maven项目),只能通过浏览器的开发者模式,找到对应的链接,结合对应的路由文件找到对应的action,然后分析action中的方法

3.具备快速学习能力。工作中需要的很可能是之前没有接触过或了解过的,如本次实习刚开始没有接触过SSH框架,MyBatisPlus,Vue.js,svn版本控制,但是工作中需要用到,只能去重新学习,Mybatis还好,因为之前接触学习过Mybatis,可以直接看Mybatis的官方文档来开发,其余就只能下班空余时间看视频学,然后上班的时候看官方文档做(一般上网搜搜就能够入门,然后就可以看懂项目的基本代码了)

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 12:04:45  更:2021-08-25 12:06:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:21:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码