源码及资料:
http://www.byamd.xyz/sss.html

摘 要

学习和研究办公自动化中涉及到的知识和技术是实现办公自动化系统的前提条件。通过学习研究,掌握了其中的关键技术之后,结合自身的理解,对其做出了相应的表述。同时也成功的实现了系统中涉及到的一些模块。这些实现了的功能模块,在日常办公中都能被用到。具有一定的实用价值。

办公自动化(Office Automation,OA)的诞生离不开科技不断发展的趋势推动,虽然今天它已趋于完善。但在信息蓬勃发展的今天依旧是一项非常活跃和具备顽强生命力的技术。办公自动化在企业当中的应用具有无法取缔的重要意义。对办公自动化的学习和研究是有必要的。

办公自动化有很多的优点:避免对资源不必要的浪费,节约成本,高效管理等,它能让管理变得规范和科学。在查阅了很多与OA系统相关的资料后,对其进行了深入的学习。在了解到办公自动化现在的发展状况后,对学习和研究它的现实意义进行了深入的分析。

为了开发出更加完善的系统,本文以J2EE为技术基础,企业级的MVC设计模式为前提,科学的对系统进行了分析,阐述了OA系统的核心技术及其他工具的使用。在掌握Spring、SpringMVC、Mybatis等框架技术之后,运用Maven工具进行项目的管理,为办公自动化系统的开发做了充足的准备。

关键词:办公自动化,J2EE,Maven,SSM

*
*

Design and implementation of OA system based on Java

Abstract

Learning and studying the knowledge and technology involved in oa is the precondition to realize oa system. Through study and research, master the key technology, combined with their own understanding, make the corresponding expression. At the same time, some modules involved in the system have been successfully implemented. These realized the function module, can be used in the daily office. It has certain practical value.

The birth of Office Automation (OA) is driven by the continuous development of science and technology, although it has been improved today. However, it is still a very active and tenacious technology in today’s information boom. The application of office automation in enterprises is of great significance. The study and research of office automation is necessary.

Office automation has many advantages: avoid unnecessary waste of resources, save costs, efficient management, etc., it can make management become standardized and scientific. After consulting a lot of materials related to OA system, I made an in-depth study of it. After understanding the current development of office automation, the practical significance of learning and studying it is analyzed in depth.

In order to develop a more perfect system, this paper takes J2EE as the technical basis and the enterprise-level MVC design pattern as the premise, scientifically analyzes the system, and expounds the use of OA system’s core technology and other tools. After mastering Spring, SpringMVC, Mybatis and other framework technologies, I used Maven tool to manage the project and made sufficient preparation for the development of office automation system.

Key words: Office Automation, J2EE, Maven,SSM

第一章 前言

在技术发展和社会需求变更的推动下,办公自动化也在不断的成熟起来。随着信息爆炸时代的来临,为了挖掘、分析、传输和存储人们日常生活中所产生的各种数据以分析其潜在价值。各种技术的发展日新月异,其中通讯技术的发展尤为迅猛(5G已不在停留在概念上)。分布式数据库也得到了广泛的运用。这些技术的发展使得办公自动化有了更大的提升空间。

公文在传统的办公模式下,多是手工传递处理,这种方式存在安全性不足、信息难以进行统计和分析等弊端,最主要的还是协同办公难以实现。跟传统的办公模式相比,办公自动化有着效率高、资源共享及时、以及节约成本等优势。

现在的办公自动化系统,不止能为管理者的决策提供科学和正确的指导,还能提高领导的管理水平,同时推动了各个单位的信息化建设的进程。办公自动化在各个单位中都起着举足轻重的作用。

随着技术的发展和社会的进步,办公自动化的内涵和外延也在不断的发生变化。也就是说它是一个动态的定义。为了应对现代化办公模式及其需求的不断发展,这就对办公自动化的整体系统结构和处理能力以及运作平台提出了越来越高的要求。办公自动化是信息时代发展下的必然产物。在协同办公理念深入人心的当今社会,办公自动化的使用程度将成为一个国家现代化进程的重要指标和衡量标准。

1.1项目背景

目前国内外还存在着很多日常办公运用手工操作的企业和单位。这样将导致大量的信息不能得到及时的共享和充分的利用。而且随着时间的推移,不断累积的信息将成为企业和单位的一种负担,光是对信息的管理、分类、索引、利用就极其困难,对于企业和单位来说不仅是一种时间成本的投入,还是对人力和财力的损耗,最重要的是工作效率低下,决策者还难以从中挖取出有用的数据来用作决策的依据。长此以往,信息的不断累积对企业和单位来说将是有百害而无一利的。办公自动化的意义自然不言而喻。

过去的办公自动化系统,在当时的技术条件限制下存在很多的缺陷,早已不能胜任现代办公的需求。集成化程度低,不能实现充分的资源共享,系统韧性差等因素成为了其致命的缺点。特别是过去的这些办公软件,大都是静态的。由于不能适应信息时代的需求,导致了它们的应用范围有很大的局限性,应用效果也很差。因此在信息化时代下的办公自动化系统需要具备更强劲的功能。在降低企业成本,充分利用企业内部资源,加快业务流程,显著提高工作效率和应对环境变化等方面都要有良好的表现。

1.2 OA简介

办公自动化简称为OA(Office Automation)是集计算机科学、通讯技术、系统科学、行为科学为一体的综合性技术。现代的办公自动化系统采用的是Internet/Intranet技术,基于工作流的概念,使得企业内部的员工能够方便快捷地共享信息,高效地协同工作;改变传统复杂、低效的手工办公方式,以实现迅速、全方位的信息采集和信息处理,为企业的管理和决策提供科学的依据。企业实现办公自动化的程度也是衡量其实现现代化管理的标准。办公自动化不仅兼顾个人办公效率的提高,更重要的是能够实现群体系统工作。凭借网络,这种交流和协调几乎可以在瞬间完成。

1.2.1 办公自动化的国内外研究情况

不管在过去还是在现在,办公自动化的核心都是公文处理。由于公文处理本身的特性限制,这对办公自动化系统在公文处理的流程控制方面提出了更高的要求。

目前的办公自动化系统在企业中得到了广泛的运用,它的工作流管理自然也就延伸到日常办公,和事务处理流程中去了,比如会议的管理、财务报销审批、休假审批等等。

办公自动化系统通过对工作流的管理,使得公文在流转、审批、发布等方面极大的提高了其效率。实现了办公管理的规范化和信息管理的规范化,极大的降低了企业的运行成本。

现在国内主流的OA系统有泛微、蓝凌等,其主要功能模块见图1.1和图1.2:

图2.1 泛微OA系统功能模块图

图2.1 蓝凌OA系统功能模块图1

图2.2 蓝凌OA系统功能模块图2

国外OA系统的代表有EGroupware,其主要功能模块如图2.3所示:

图2.3 EGroupware OA系统功能模块图

对比分析上图可以看出,这些OA系统中都有流程管理这个模块。要实现对这个模块的管理,还需要有相应的软件系统作为支撑。即工作流管理系统(WFMS),工作流管理系统的主要作用是:调用和管理业务过程中的各种活动的先后顺序和资源,以此达到自动化办公的目的。

1.2.2 本文的主要内容及章节安排

本文对办公自动化进行了分析和研究、并且还将JBPM(Java Business Process Management)和SSM框架技等技术应用在了办公自动化领域中,通过Maven这样的项目管理利器来对项目进行管理,从一定程度上保证了系统整体架构的稳定性和具体实现代码的鲁棒性,致力于实现系统各个模块之间的“高内聚、低耦合”度,使得系统各个模块的复用程度、系统功能的扩展性和可维护性都得以提高;通过使用管理工具Maven还可以轻松的实现对系统中各个模块的管理。

本文的章节安排和主要的研究内容所下所述:

第一章节:前言主要概述了本文的研究背景和这个课题在国内外的研究情况,并且还通过对项目背景的简述,说明了对办公自动化进行研究的意义。

第二章节:主要是相应架构技术和开发环境的概述,首先介绍了所要用到的相关技术的理论知识,然后对Spring、SpringMVC、Mybatis等框架的运行机制进行分析,它们是构建OA系统的关键技术。

第三章节:这一章节对系统开发进行了必要的分析,为系统设计环节提供了相应的理论基础。

第四章节:系统设计是实现系统开发的主要环节和前提条件,对办公自动化系统的主要模块进行了详细的分析和设计,为后续的具体实现奠定基础。

第五章节:对系统的具体实现也作了简要描述叙述的同时,还对开发环境的搭建,框架的整合进行了简要的说明,在系统实现章节附录了相应模块的核心代码。

第六章节:总结全文,同时对系统的进一步提升和完善提出改进意见。

第二章 系统架构技术的研究及简单的环境搭建概述

2.1 Web应用体系结构

技术总是在不断发展和进步的,企业级应用程序的架构也不例外,在多年的发展演进过程中,它的设计思想也产生了巨大的变化。分析它的发展历史,可以发现:在大型机和个人计算机盛行的时期,很多的应用程序都是运用的两级体系结构,在这种结构中,服务端的主要职责是数据的存储和检索,而绝大多数的业务逻辑还交由客户端来进行处理。随着应用程序中需求的增多,其中包含的业务逻辑变得越来越复杂的时候,客户端就显得不堪重负啦,为了减轻客户端的压力而将系统中的业务逻辑剥离出来,形成单独的一部分,就这样衍生出了三层体系结构。

三层体系结构的划分如图2.1所示。

图2.1 Web应用三层架构图

(1) 表现层:可以理解为jsp、html等页面。

(2) 业务逻辑层:主要任务是对程序中与业务流程进行处理,为前端页面提供相应的业务服务。

(3) 数据持久层:主要是对数据进行存储。

运用这样的三层结构,可以实现让每一层在功能实现上有一个清晰的界限,这样三层之间是相互分离的,但它们之间存在彼此进行通信和交互的接口。

软件开发采用这种三层体系结构,可以让软件系统在可扩展性、可复用性、和安全性上得到很到的提升,还也有助于系统易管理性的提高。

2.2 B/S架构介绍

B/S架构是一种对C/S架构进行改进后的架构,它不需要安装任何专门的软件,对操作系统也没有任何限制,由于只需要客户端上具备浏览器就行,这种架构实现了客户端的统一和平台无关性。在这种模式下,系统功能的核心实现集中在了服务器上,这样可以简化系统的开发、维护和使用。

使用架构,可以使得软件维护和升级方式变得简单,由于浏览器就是它的客户端,所以根本不需要做任何的维护,只需要对服务器进行管理即可。用户量的增多也不会对它的升级维持产生影响。甚至还可以实现远程维护、升级和共享。管理人员只需要管理服务器就行了,软件的维护成本较低。

也正是因为B/S架构的特性,所以客户机越来越“廋”,但服务器却因此变得越来越“胖”,在这种架构之下,服务器运行数据的负荷较重,为避免发生服务器“崩溃”,造成无法弥补的损失。使用这种架构往往需要配备数据库存储服务器来以防万一。

2.3 j2EE简介和JDK的安装配置

Java编程主要有三个方向:Java SE(Java Platform , Standard Edition),它是Java中的基础部分,也称J2SE,主要用于桌面开发,同时它也是Java EE(Java Platform , Enterprise Edition)的基础。Java EE也称为J2EE主要应用于Web开发。最后一个是Java ME(Java Platform , Micro Edition)也称J2ME,主要应用于移动端的开发。

J2EE这种技术架构,它有很多组件,主要用来简化和规范系统的开发和部署,从而可以提高代码的移植性、安全性和复用性。因为它是Java技术中的一部分,所以Java语言所具备的特点它也都具备,面向对象、高性能、跨平台(操作系统)的。而且“一次编译,到处运行”。

俗话说:“工欲善其事,必先利其器”,如果想要通过使用J2EE架构进行系统开发,首先需要进行JDK(Java Development Kit)的安装及其配置。具体的安装配置如下:

下载JDK的安装包:虽然JDK是sun公司开发的产品,但由于sun公司已经被Oracle公司收购,在下载安装包的时候需要到Oracle官网上去根据自己的操作系统进行下载。具体的下载过程就不再赘述,接下来说一下JDK的环境变量的配置方式。

我的电脑à系统属性à高级系统设置à环境变量à新建

变量名: 变量值:

JAVA_HOME D:\DEV\jdk1.8(具体配置视安装目录而定)

CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; (固定写法)

最后在path路径中添加变量值:%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin即可。

测试:运用组合键“win+r”输入CMD命令进入控制台,然后在控制台输入

java–version、java、javac等命令进行测试。

得到图2.2、图2.3和图2.4所示则表示JDK安装配置成功。

图2.2 JDK安装配置测试图1

图2.3 JDK安装配置测试图2

图2.4 JDK安装配置测试图3

2.4 Jsp简介

Jsp(Java Server Page)是一种动态网页的综合性技术。它的产生是由于程序员在开发的过程中发现,Servlet用来做界面非常的不方便。于是就想到了用一种新的技术来做界面,就这样Jsp技术就出现了。Jsp技术可以用下面这个公式来进行表示:公式:Jsp=html+java片段+Jstl+Javascript+css。其实Jsp的本质还是Servlet,Jsp和html最大的区别仅是多了一些Java片段而已,所以写Jsp就和写html差不多。

相比html来说:html只能为用户提供静态数据,而jsp技术允许在页面中嵌套Java代码,能够为用户提供动态数据。

相比Servlet来说:Servlet要对数据进行排版难度较大, Jsp不止是可以通过Java产生动态数据,它还综合了JavaScript和css技术,所以能够很轻易的对数据进行排版。

Jsp的运行原理如图2.5所示:

图2.5 Jsp运行原理图

说明:Jsp页面报错实际上是报的Servlet即xxx_jsp.java中的错误,在查找错误的时候应当找到与该Jsp对应的Servlet中去查找相应的错误。

2.5 MVC简介

MVC是一种设计模式,所谓设计模式就是开发人员在长期的开发过程中提炼和总结出来的一套优秀的应对一般问题的解决方案。

MVC当中的M代表model,可以理解为JavaBean,V即视图,是系统与用户进行交互的窗口,可以理解为Jsp页面或其他的前端页面。其中C是Controller控制器,主要用于处理业务逻辑。采用MVC这样的三层模式,可以有效的将视图、业务逻辑和数据持久层分离开来,它们之间相互分离,仅通过业务逻辑来进行调用。

例如这样一个简单的需求,前端Jsp页面的用户通过输入用户名和密码发起一个登陆请求,请求将传达到控制器,控制器通过对数据库的调用来进行数据比对,如果在数据库中不存在那么一个用户,那么控制器将返回一个失败信息给前端页面。

这种设计模式极大程度上的增加了程序的健壮性,可维护性和易于扩展。

J2EE中几种重要的开发模式:

Model1模式: Jsp文件是Model1模式的基础,它是由一些独立的Jsp文件,和一些Java Class组成的(不是必须的),这些Jsp文件通过从Http 请求中获得所需要的数据,并进行业务逻辑的处理,处理的结果通过服务器响应返回前端界面。

Modell模式有开发简单、开发速度快,适合开发小项目等优点。缺点是,表现层和业务逻辑层混在一起,首先这样显得很乱,代码的可读性差,后期维护工作难以进行,同时也不利于多个人进行协同开发。Model1模式原理如图2.6所示:

图2.6 Model1模式原理图

分层模式即Model1.x模式(MV模式,分层),是在Model1模式的基础上演变而来,将业务逻辑和表现层分离开来,但是业务逻辑和数据模型模型依旧放在一起也不利于系统的维护和扩展,其原理如图2.7所示:

图2.7 分层模式原理图

MVC模式要求在开发的过程当中,把数据的输入、输出和显示分进行分离。

MVC模式的原理,如图2.8所示:

图2.8 MVC模式原理图

2.6 Spring简介

首先说一下Spring是什么?

Spring是一个为了解决软件开发复杂性而被开发出来的,优秀而且开源的容器框架,来看一下如图2.9所示的Spring层次原理图。

图2.9 Spring的层次图

从图中可以看出Spring是一个横跨三层(Web层、业务层、数据持久层)的框架,之所以把它称之为容器框架,是因为它的核心主要是用于配置bean,并且维护bean与bean之间的关系。这里说到的bean是Spring框架中一个非常重要的概念,它可以是Java中的任何一种对象,Spring的核心配置文件包含并管理了应用中对象的配置和生命周期,从这个层面上来说,可以将其看成是一种容器。

Spring中提出了控制反转技术(IoC),和面向切面编程(AOP)的思想等促进了应用软件模块之间的松耦合度。能够有效的提升软件的稳定性和可测试性。

Spring命名的由来,起初在Rod Johnson的Expert One-on-One Java EE Design and Development(专家一对一J2EE设计与开发)一书中Spring被称为“Interface21”(当时它使用com.interface21这个包名)。对于使用过EJB来开发过J2EE的人,一定知道这门技术在开始学习和应用的时候非常的艰苦。Spring出现后采用简单的JavaBean代替了EJB,并且还提供了更多的企业应用功能。Spring代表了传统J2EE“冬天”之后的一个新的开始,而且为了激励开发者社区,然后就有人提出了用“春天”这样一个简洁优雅的词来命名。

Spring框架由七个明确定义的模块组成,详见图2.10。

图2.10 Spring的组成图

Spring框架的组成模块之间是相互独立的,在实际开发的过程中,可以根据自己的需求选用其一部分子框架即可,然后应用其他的框架方案加以代替。例如:它所提供的ORM(对象关系模型)框架,就可以采用Mybatis框架来进行代替。如果采用了其他的框架来进行替代的话,就涉及到框架的整合。在它的核心配置文件中,应当合理的进行配置,如图2.11所示:

图2.11 Spring.xml加载Mybatis配置文件配置图

框架多是通过Java的反射机制来实现的,至于其内部的实现细节在此不做叙述,在此只对其运行原理进行说明,Spring的运行原理如下图2.12所示:

图2.12 Spring运行原理图

Spring开发提倡接口编程,配合di(Dependency Injection)技术可以更好的达到程序间的解耦,使用框架的时候需要到其官网去下载jar包,然后导入到工程目录中去才能进行使用,对于项目工程来说,可以理解为第三方库。

2.7 SpringMVC简介

SpringMVC是Spring框架的子模块,它是类似于Struts2的一个MVC框架,在实际的开发中,接收浏览器的请求响应,对数据进行处理,然后返回页面进行显示。上手难度较Struts2简单得多,而且由于Struts2所暴露出来的安全问题,SpringMVC已经成为了大多数企业优先选择的框架。

运用SpringMVC框架进行开发,程序员只需要把精力放在处理器Handler的编写及视图比如JSP页面的编写上即可。

学习框架实际上学习的就是其配置文件,使用框架有很多好处,但是相应的也会存在一定的限制,开发的过程中应当遵从其相应的规范。

在运用SpringMVC进行开发的时候,需要在它的核心配置文件中,进行相应的配置。其中主要的是对映射器、处理器、视图解析器、视图过滤器还有Handler进行配置如图2.13和图2.14所示:

图2.13 SpringMVC配置图1

SpringMVC的试图过滤器需要到Java Web工程的Web.xml文件中去进行配置。

图2.14 SpringMVC配置图2

编写SpringMVC中的映射器、处理器有两种方式,一种是注解的方式,还有一种是非注解的方式,在运用注解方式的时候应当注意:

一、注解方式的映射器

spring3.1之前使用 org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping注解映射器。spring3.1之后使用 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping注解映射器。

二、注解方式的处理器

spring3.1之前使用 org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter处理器适配器。spring3.1之后使用 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter处理器适配器。

SpringMVC的映射器和处理器在使用的时候需要配对使用,版本需要一致,不然在项目运行的时候会报错。SpringMVC还提供了mvc:annotation-driven/标签来配置映射器和处理器,Handler的配置还可以通过包扫描的方式进行配置:

<context:component-scan base-package="包含controller的包名 ">。

2.8 Mybatis简介

Mybatis可以理解为一种不完全的ORM(对象关系模型)框架,它是Apache下的顶级项目,对于Mybatis来说对JDBC的封装程度没有Hibernate深,所以它对开发人员有着更高的要求,开发者需要自己编写SQL语句。

Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。它可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO为数据库中的记录。

Mybatis是数据持久层框架,Mybatis对于大型数据库的优化和适配性较强。适用于需求变化周期快,数据处理量较大的系统。Hibernate采用了更加自然的面向对象的视角来持久化Java应用中的数据,让开发者不再关注底层数据库的细节。Mybatis在这方面没有特定的文档说明,这样便于开发者发挥自身想法来对对象进行管理。

Mybatis运行原理如图2.15所示:

图2.15 Mybatis运行原理图

Mybatis的核心是mapper.xml文件,简单的说就是配置SQL语句。

2.9 Maven的简介

Maven是一种优秀的项目管理工具,它为构建项目提供了一套完整的生命周期框架。

由于Maven使用了标准的目录结构和生命周期。所以在多个开发团队进行开发的情况下,它可以按照设置标准在很短的时间内,完成相关的配置工作。由于大部分项目的设置都很简单,并且可以重复使用,Maven让开发者的工作更轻松。同时它可以自动的完成:创建报表、检查、构建和测试等工作。

系统在运用框架开发的过程中,需要到各个框架的官网上去下载jar包,运用Maven的话,只需要在其核心文件中添加依赖即可。可以方便的进行管理、节约时间、提高工作效率。

总的来说,Maven可以帮助开发人员简化和标准化项目的建设。它主要有负责处理编译,分配文档和管理团队协作等功能。Maven可以增加项目中模块的可重用性。

Maven项目的结构和内容在pom.xml文件中声明,pom.xml文件这个文件是整个Maven系统的基本单元。

管理工具Maven的安装步骤如下:

一、进行下载安装:到Maven的官网去下载和系统对应的文件。由于是下载好的文件是压缩包格式,只需要将它进行解压就能完成安装了。

二、配置环境变量:此电脑à系统属性à高级系统设置à环境变量

三、点击新增变量,变量名为:MAVEN_HOME,变量值就是maven解压位置的路径。

接着点击编辑Path变量,在有变量值的那一栏中追加 %MAVEN_HOME%\bin即可。

测试:win+Ràcmdà调出控制台à输入命令(mvn –version)。得到图2.16所示的结果,那么环境变量就配置完成。

图2.16 Maven的安装测试图

对Maven的settings.xml文件进行配置,可以实现其默认仓库的转移:

根据Maven的安装路径找到它的配置文件(settings.xml),用记事本打开之后找到“”这对标签,并在这对标签中间填写上指定的路径,如图2.17所示:

图2.17 Maven配置文件的配置图1

接着配置Maven,由于到它本身的中央仓库去下载jar包会非常慢,这里将其更改为阿里云的,在settings文件中找到“”这对标。

然后在标签当中增加阿里云maven镜像,如图2.18所示:

图2.18 Maven配置文件的配置图2

至此,Maven的安装配置完成。

2.10 本章小结

本章节通过对办公自动化系统中所到使用到的相关技术进行了简要的叙述,对使用的框架的原理及配置文件进行了简要的说明,通过对理论知识学习和相关技术的研究,为办公自动化系统的开发提供了一定的理论基础,让办公自动化系统的实现成为可能,同时还做了一些必要的准备,安装JDK和Maven,并且对环境变量进行了配置。

第三章 系统分析

3.1 系统的可行性分析

在准备开发一个项目的时候,对其进行可行性分析是必不可少的一个重要环节,通过对其进行可行性分析,可以为我们的决策(是否对该软件进行开发)提供科学的依据。可行性分析可以帮助我们在开发项目的过程中以最小的代价,并且尽可能的在短时间内来确定相应的问题是否能够得到解决。通过确定系统的相关约束和限制,以此来分析准备开发的系统需求和规模等是否能够具体实现,实现后能否为企业带来经济效益的最大化。总而言之,只有通过认真的对系统进行可行性分析,才能有效的避免在开发过程中的阻抗问题。

(1)技术可行性

字面上的意思就是通过现有掌握的技术是否能够实现这个项目?

本课题的技术基础是Java,结合掌握了现有的一些优秀的框架Spring(容器框架)、SpringMVC(MVC框架)、Mybatis(数据持久层框架)技术的基础上,结合项目管理工具(Maven)来对办公自动化系统进行开发。通过将这些框架进行整合来实现具体的开发,可以增加系统的稳定性、可维护性以及可扩展性以此来达到快速稳健的构建项目的目的。

数据的存储采用了开源的MySQL数据库,虽然它是开源的,但是在安全性做得较好,数据处理的能力极强,并且它是一个最轻量级的数据库,系统要求没那么高。

开发工具采用具有错误代码提示功能的Eclipse(一个免费的集成开发工具),它所提供的错误代码提示功能对于初学者来说是比较重要的(不怕出错,就怕不知道哪儿出错)。

在长期的学习过程中,对于相关技术的掌握让我对办公自动化系统的开发成为可能。

(2)经济可行性

从企业的出发点来看,就是某个软件开发出来之后所带来的经济效益是否

会大于其开发成本。如果该软件所带来的经济效益能够远远大于其开发成本,那么决策者将决定对其进行资金注入。

就个人的毕业设计而言,所采用的相关技术以及开发工具等都是免费的。所以并不存在因为经济压力而开发不下去的情况。

(3)操作可行性

该办公自动化系统应用Tomcat容器进行部署,前端页面运用了JSP技术。在项目进行发布的时候,只需要通过浏览器输入对应的URL就可以实现访问和操作。该系统具有交互界面简单,操作容易,方便管理等特点。

综上所述,本系统可以进行实际开发。

3.2需求分析

3.2.1 功能性需求分析

本系统从功能的实现上主要分为日常办公、综合信息、系统管理三个模块,初始情况下只为系统设置一个用户admin,这个用户是系统的超级管理员,拥有操作这个系统的最高权限(系统管理、个人信息管理、审批管理、公告管理等)。

3.2.2 日常办公

工作流是办公自动化系统的核心所在,在最初的办公模式下,工作流的流动是基于纸张表单、人工传递的方式进行逐级流动的,最后再又管理者进行审批签字。对资源来说是一种浪费,最主要的还是工作效率不高,企业中应用办公系统,员工只用通过电脑来填写好相关的表单即可,表单会按照系统定义好的流程,自行的流动向下指定的审批者,审批者在接收到表单后,可以根据需要对其进行相应的更改,大大的提高了员工的工作效率,同时也提升了公司的核心竞争力。在这一模块中审批管理是其核心。系统需要将消息分发给对应的审批人员,最后根据审批人员的抉择来确定最后的结果。公告的发布修改删除只能是管理员才具备的权限。每次公告的更新数据都会同步到数据库中去,在其他用户登录系统的时候可以及时的接收到公告通知。

3.2.3 综合信息

企业的管理离不开对数据的处理,例如:一个新员工在正式进入公司的时候,要对其信息进行录入、备份,在其职位、薪水等发生变化的时候要对相应的信息进行更改。在员工离职的时候需要将其相应的信息进行删除。企业中信息的交流处理(业务流程)是办公系统中重要的组成部分。采用传统人工的方式进行处理,工作效率低下。大量累积的信息需要进行筛选、分类、归档。如果仅靠人工进行操作,工作量大、不易管理、在对信息进行查找的时候工作难度大,对于企业来说是一笔不小的资金投入,因此需通过系统来实现其管理的便捷性,以此提高工作效率、降低运作成本。

3.2.4 系统管理

系统管理是针对具有系统管理权限的人员对系统进行维护而开发的基础模块。

系统管理的主要模块主要包含(用户管理、岗位管理、权限管理、部门管理)等模块。

(1)用户管理模块要具体实现的共能为:添加、删除、更新、用户列表等。

(2)系统的岗位管理模块的主要功能为:添加、删除、更新、岗位列表等。

(4)部门管理主要实现的主要功能为:添加、删除、更新、部门列表等。

3.2.5 非功能性需求分析

对系统的非功能性需求进行分析是必要的,虽然它与系统的实现无关。但也是要重点考虑到的一个环节,它具体包括了系统的安全性、可靠性、健壮性、可扩展性等。这些属性是衡量系统好坏的关键。

系统开发完成之后应该具有操作简单、良好的交互性(用于提升用户使用的满意度、和良好的使用体验)、界面具有友好性(针对用户的误操作给出相应的提示信息)等特性。系统应该充分的考虑用户的操作习惯,针对这些需求对系统各项功能进行严格的测试,并进行逐步完善,以此来增加系统本身的实用性。

3.3本章小结

本章节通过对系统的可行性进行了简要的分析,为是否开发该系统提供了科学的理论依据。通过对系统功能性需求分析的阐述,说明了系统主要的几个模块以及它们应该包含和实现哪些具体的功能。最后通过系统非功能性的需求分析,对系统还需实现哪些与系统主体功能无关的细节进行了补充和说明。

第四章 系统设计

4.1 系统的架构设计

这个办公自动化系统,采用的是B/S架构、运用了MVC模式进行开发,主体包括了数据持久层,核心业务层以及应用层(即前端视图界面—用户实现操作的交互界面),运用框架技术结合Maven管理实现对系统的构建,系统整体架构如图4.1所示:

图4.1 系统整体架构

在此系统架构下,项目工程的文件结构如图4.2所示:

图4.2 项目工程文件结构

4.2 系统模块设计

系统模块的合理划分是系统成功的关键,因为OA系统模块众多,如果事先不做好模块划分,开发过程中的时间成本的投入将会提高,还可能造成做无用功的现象。对系统的各个模块进行合理的划分,能够促进系统功能的具体实现。

系统模块大致分为系统管理、个人信息管理、审批管理、公告管理等(模块)。如图4.3所示:

图4.3 系统总模块

系统管理模块又分员工管理、部分管理和岗位管理,如图4-4所示:

4.4 系统的管理模块

系统的个人信息管理模块,主要功能是对用户进行CRUD操作,如图4.5所示:

图4.5 系统的个人信息模块

系统的审批模块,主要由请假申请、申请查询和待审批申请组成,如图4.6所示:

图4.6 系统的审批管理模块

系统的公告管理模块,主要实现:管理员对公告的增、删、改操作,用户对公告可以进行的操作是查询,如图4.7所示:

图4.7 系统的公告管理模块

4.3数据库设计

数据库是系统的核心组成之一,主要用于对各种信息进行增删改查操作。数据库设计得是否合理,对整个系统有着深远的影响。

4.3.1概念结构设计

为了方便描述系统各模块间的联系,应设计与之对应的实体,实体中需要包含相关的实体属性。

这里通过“请假”这个具体的事务流程为主线来贯穿系统中所涉及的实体。企业内部某个部门的员工(仅仅具有普通权限的系统用户)在要请假的时候,应该向具有相应权限的管理人员(具有系统管理权限的用户)发起“请假”申请,然后由管理人员对“请假”进行审批,最终将审批的结果返回给申请人。

这个业务中所包含的实体有:用户、部门、请假、审批、权限和角色。

(1)用户实体用于存储用户的相应信息,用户实体如图4.8所示:

图4.8系统用户的实体图

(2)部门实体包含了部门名称和描述等属性,部门实体,如图4.9所示:

图4.9系统的部门实体图

(3)系统的请假实体主要包含的信息,如图4.10所示:

图4.10系统的请假实体图

(4)审批实体主要包含了一下信息,详见图4.11:

图4.11系统审批实体图

(5)权限这个实体存储了与权限相关的信息,如图4.12所示:

图4.12系统的权限实体图

(4) 用户角色实体主要用于存储用户在企业中担任的角色,角色实体如图4.13所示:

图4.13系统的角色实体图

4.3.2系统E-R图

E-R图是描述实体之间的关系图,本系统的E-R图,如图4.14所示:

图4.14 OA系统的ER图

4.3.3表结构的详细设计

表结构设计的好坏,对系统的运行性能起着决定性的因素。不合理的设计还可能导致在开发的过程中遇到很多难以解决的问题,甚至导致开发难以进行下去。所以在设计表的时候应该遵循一定的关系模式。设计的时候至少需要满足第一范式的要求(即保证表中的每个属性的值域都是不可再分的数据项),目的是为了保证数据的完整性和可靠性避免数据冗余。

(1)用户表用保存用户的相关信息,表结构如表4.1所示:

表4.1系统用户表(t_wl_user)

**字段名** **类型** **长度** **是否为空** **是否主键** **说明**
**user_id** int 20 用户ID
*depart***_id** int 20 部门ID
**role_id** int 20 角色ID
*login***_id** varchar 40 登陆ID
**userName** varchar 25 用户名
**userPassword** varchar 30 用户密码
**sex** char 2 用户性别
**phoneNumber** varchar 20 手机号码
**email** varchar 30 电子邮件
**description** varchar 90 描述
**createTime** dateTime 注册时间

(2)部门表用于存储部门的相关信息,表结构如表4.2所示:

表4.2系统部门表(t_wl_department)

**字段名** **类型** **长度** **是否为空** **是否主键** **说明**
**depart_id** int 20 部门ID
**name** varchar 25 部门名称
**description** varchar 90 描述
**parent_id** int 20 上级ID

(3)角色表用于存储角色的相关信息,表结构如表4.3所示:

表4.3系统角色表(t_wl_role)

**字段名** **类型** **长度** **是否为空** **是否主键** **说明**
**role_id** int 20 角色ID
**name** varchar 25 角色名称
**description** varchar 90 描述

(4)权限表用于保存权限信息,表结构如表4.4所示:

表4.4系统权限表(t_wl_power)

**字段名** **类型** **长度** **是否为空** **是否主键** **说明**
**id** int 20 ID
**name** varchar 25 名称
**url** varchar 130 url
**parent_id** int 20 上级权限ID

(5)公告表用于保存公告信息,表结构如表4.5所示:

表4.5系统公告表(t_wl_notice)

**字段名** **类型** **长度** **是否为空** **是否主键** **说明**
**notice_id** int 20 公告ID
**user_id** int 20 创建人
**content** longtext 公告内容
**createTime** dateTime 创建时间

(6)请假表用于保存请假信息,表结构如表4.6所示:

表4.6系统请假表(t_wl_leave)

**字段名** **类型** **长度** **是否为空** **是否主键** **说明**
**leave_id** int 20 请假ID
**user_id** int 20 请假人
**approver_id** int 20 审批人
**startTime** dateTime 开始时间
**endTime** dateTime 结束时间
**days** int 2 请假天数
**reason** varchar 90 请假原因
**result** varchar 10 请假结果
**createTime** dateTime 创建时间
**status** varchar 10 请假状态
**type** varchar 10 请假类型

(7)审批表用于保存请假的审批信息,表结构如表4.7所示:

表4.7系统审批表(t_wl_leaveApprover)

**字段名** **类型** **长度** **是否为空** **是否主键** **说明**
**approver_id** int 20 ID
**leave_id** int 20 请假ID
**user_id** int 20 审批人
**username** varchar 25 请假人
**status** varchar 10 审批状态
**advice** varchar 10 审批意见
**createTime** dateTime 创建时间

(8)消息表用于保存待审批消息,表结构如表4.8所示:

表4.8系统消息表(t_wl_message)

**字段名** **类型** **长度** **是否为空** **是否主键** **说明**
**message_id** int 20 消息ID
**user_id** int 20 消息归属
**leave_id** int 20 消息来源
**title** varchar 45 消息标题
**watch** char 2 是否查看

至此,系统中各个表的表结构设计完成。

4.4核心业务流程设计

工作流的设计是办公自动化系统的核心。针对本系统,通过“请假”这一业务来进行工作流设计,具体流程为见图4.15所示:

图4.15系统的主要业务流程

4.5本章小结

通过“请假”这一业务来贯穿整个章节,对系统的架构设计、模块设计、数据库设计和核心业务流程设计进行了详细的说明,并且给出了进行过合理设计实体图、E-R图和表结构。

第五章 系统实现

完成以上过程后,现在进行办公自动化系统的开发。选择合适的开发工具和框架实现开发。严格按照框架约束和MVC模式的要求,遵循Java的命名规范,对代码进行优化、抽取和封装,最终完成一个高性能的办公自动化系统。

5.1 开发环境搭建

在安装配置了JDK和Maven的基础上,现在进行Eclipse(集成开发工具)的安装。注意事项:Eclipse的安装需要选用与之版本对应的JDK版本才能成功运行。

(1)在官方网站下载安装好Eclipse2018-12后运行(因为下载好的文件是压缩包格式,安装过程只需要将其解压到指定目录即可)。

(2)Eclipse在第一次运行的时候需要先选择它的工作空间(工作空间自行指定),如图5.1所示:

图5.1 Eclipse工作空间创建图

(3)新建一个Maven工程,如图5.2所示:

图5.2 新建Maven工程图

到选择工作空间的时候把“Use default Workspace location”勾选好即可,在选择类型的时候需要选择webapp,如图5.3所示:

图5.3 新建Maven工程类型选择图

选择完毕后点击下一步,最后为工程命名(myDesign),如图5.4所示:

图5.4 Maven工程命名图

在命明完成后点击完成即可。

(4)Maven工程新建完毕之后对其配置文件(pom.xml)文件进行配置部署,添加开发所需的依赖。如图5.5和5.6所示:

图5.5 pom.xml文件配置图1

图5.6 pom.xml文件配置图2

(5)进行框架整合,先按照SSM框架的整合规范建立相应的文件结构,然后对系统中所用到框架的配置文件进行相应的配置,目的是完成框架的整合。

Mybatis的配置如图5.7所示:

图5.7 mybatis.xml文件配置图

Spring配置文件的部分配置如图5.8所示:

图5.8 spring.xml文件部分配置图

5.2 通用功能实现

由于CRUD操作是各模块数据通用的,故而将其抽取为公共代码部分,采用面向接口编程的方式,具体模块的实例需要运用到的时候对其进行实现即可。主要代码如下:

*public* *interface* UserService {

*public* User findUser(String username, String userpwd) ;

*public* List selectAll();

*public* *void* add(User u);

*public* *void* del(****int**** id);

*public* User getById(****int**** id);

*public* *void* update(User u);

*public* List getByLike(String keywords);

}

5.3 登陆模块实现

登陆界面采用html+js+css来具体实现,效果如图5.9所示:

图5.9 用户的登录界面效果图

下面附录的是实现登陆主要代码:

// 申明这是一个控制器

@Controller

*public* *class* Usercontroller {

​ // 注入Service

​ @Autowired

​ UserService service;

//url映射

​ @RequestMapping("/login")

*public* String login(){

*return* “login”;

​ }

​ //登陆验证

​ @RequestMapping("/main")

*public* String checkLogin(@RequestParam(value = “username”) String username, @RequestParam(value = “userpwd”) String userpwd){

​ User user = service.findUser(username, userpwd);

​ ****if****(user!=****null****) {

*return* “main”;

​ }****else**** {

*return* “err”;

​ }

​ }

5.4 系统模块的实现

系统的主要模块有:角色管理、部门管理、用户管理三大模块,基础部分均为数据的CRUD操作,其中还包含用户列表的分页功能。页面效果如图5.10所示:

图5.10系统页面效果图

部分核心代码如下:

//后台核心代码

​ @RequestMapping(value = “/user”)

*public* ModelAndView selectAll() {

​ ModelAndView mav = *new* ModelAndView();

​ mav.addObject(“userList”, service.selectAll());

*return* mav;

​ }

//前端界面的关键代码:

​ <th class=“table-check”><input type=“checkbox” id=“chkAll”>

​ <th class=“table-id”>ID

姓名

​ <th class=“table-type”>电话

​ <th class=“table-author am-hide-sm-only”>性别

​ <th class=“table-set”>操作

<c:forEach items="${userList}" var=“user”>

​ <input type=“checkbox” name=“chk”>

​ ${user.id}

${user.name}

​ ${user.phonenumber}

5.5 本章小结

本章节主要叙述了开发环境的搭建,说明了搭建开发环境时的注意事项。在环境搭环节就系统框架的整合进行了简要的说明,最后对系统的具体实现也作了简要的描述并附录了相应模块的核心代码。

第六章 总结与展望

6.1 总结

不知不觉间毕业设计工作已进入收尾阶段,我在设计期间遇到了很多问题。遇到的这些问题在查阅相关资料和老师的帮助下得以解决。期间学到了很多东西,最重要的是学会了如何将理论知识运用到实际开发中去。

对于作为毕业生的我们而言,毕业设计不止是对所学知识的回顾,还是对现有掌握知识的一种提升,通过毕业设计,让我在原来的基础上得到进一步的提升,做到了知识的又一次升华。

学习应该是“读万卷书,行万里路”的结合,比如,学习了本系统中所运用到的框架技术知识后,要怎么样把它们具体的用到系统开发中去呢?这就需要我们进一步的去将理论和实践进行结合。通过实践,我们才能去检验我们对知识的掌握程度。了解我们的薄弱环节,并加以提升。

6.2 展望

到目前为止,我的毕业设计只能说是大致完成了。但是,其中还有好些模块都还没有具体实现,这些都是需要逐步进行完善的。就实现的模块来说,也还有可以再进行优化的地方,界面友好、符合用户操作习惯等方面都还需要进一步的做得更好,以提高用户使用的满意度。系统性能方面,可以对算法进一步的进行研究和优化。让系统在响应速度方面能够得到提升。

该系统,目前只是完成了部分模块及功能,并且只是单用户在对其进行操作。在实际应用中,必须考虑到多个或(更多)用户同时进行访问的情况,基于这种情,该系统的并发性必须要达到更高的要求才行。在此,就提高系统并发性,提出一点个人的观点和改进方案。由于垂直扩展方法的要求是增强单机硬件的性能,这无疑是一笔巨大的开销,为了节约开发成本,可以通过缓存方式减少IO的次数,异步增加服务吞吐量,用更好的数据结构来降低响应的时间,实现单机架构性能的提高,同时还可以通过水平扩展方式(服务层增加服务连接池、采用分布式数据库)来实现系统的高并发性能的提升。

参考文献

[1]王丽娟,吴东明.基于MySQL数据库实施完整性约束的研究[J].科技创新与应用,2019(02):72-73.

[2]范开勇,陈宇收.MySQL数据库性能优化研究[J].中国新通信,2019,21(01):57.

[3]贾向炜,任炜.基于工作流技术的西安交通大学全新OA系统的设计与实现[J].电脑知识与技术,2018,14(34):73-75.

[4]曾艳丽,李诺.针对SSM框架Web系统的相关思考[J].信息与电脑(理论版),2019(03):116-117.

[5]吴晓珊,曹旭东,王森,魏文龙.基于B/S架构的管理系统软件开发[J].计算机测量与控制,2019,27(02):123-128.

[6]李杉,贾彦平,达虎.Mybatis逆向工程在JavaEE中的应用[J].通讯世界,2017(24):342.

[7]梁晓弘,黄兴荣.J2EE架构下基于Web的信息管理系统框架研究[J].数字技术与应用,2017(12):86-88.

[8]姚云飞,杜洪波,梁建辉.基于SpringMVC框架毕业设计管理系统设计[J].软件,2018,39(01):91-93.

[9]廖丽.MVC模式在JSP Web开发中的应用[J].电脑迷,2018(04):80-81.

[10]薛茹.基于SSM框架的Web系统研究与应用[J].计算机产品与流通,2018(07):30.

[11]魏军峰.基于B/S架构资源管理系统设计与实现[J].电脑编程技巧与维护,2018(10):67-69+90.

[12]刘双.Spring框架中IOC的实现[J].电子技术与软件工程,2018(21):231.

[13]高梓焱.基于C/S模式下的中间件的应用与发展[J].信息系统工程,2018(09):131.

[14]Robin Ramstad,Mats Holmström,Yoshifumi Futaana,Christina O. Lee,Ali Rahmati,Patrick Dunn,Robert J. Lillis,Davin Larson. The September 2017 SEP Event in Context With the Current Solar Cycle: Mars Express ASPERA‐3/IMA and MAVEN/SEP Observations[J]. Geophysical Research Letters,2018,45(15).

[15]Shane W. Stone,Roger V. Yelle,Mehdi Benna,Meredith K. Elrod,Paul R. Mahaffy. Thermal Structure of the Martian Upper Atmosphere From MAVEN NGIMS[J]. Journal of Geophysical Research: Planets,2018,123(11).

[16]汤蓉娜.计算机软件数据库设计的重要性以及原则分析[J].计算机产品与流通,2019(03):25.

[17]聂飞.办公自动化中的计算机技术应用[J].电子技术与软件工程,2019(07):139.

致谢

首先,我要感谢的是我毕业设计的指导老师江奇峰老师。他虽然工作很繁忙,但还是尽可能的抽出时间来为我们答疑解惑。即便他在开会,在你有问题请教时,他也会在第一时间给予回复、老师一丝不苟的工作作风和对待同学的和蔼态度、以及谦和的为人,给我留下了深刻的印象。

其次,老师对我的论文提出了许多的修改建议和宝贵意见,在论文撰写的过程中,每当我你们遇到困难和疑惑时,江老师都会给我们悉心的指点。江老师为我们撰写论文提出了许多改善性的意见,投入了许多的精力和心血。在此,我要对江老师表示诚挚的谢意。

同时还要感谢大学里教过我的所有老师以及朝夕相处的同学们。大学四年幸得老师教诲、同学帮助,在收获知识的同时,还交了很多的朋友。愉快的度过了大学时光。

另外,本文最终能够顺利的完成,离不开学院教育过我,给我授课的老师们,没有你们对我孜孜不倦的教诲,我就不会有那么大的进步,谢谢你们对我的帮助。再次感谢一起度过四年时光的老师和同学们,是你们给予我帮助和关心,谢谢你们!

再次感谢以上所有的人,谢谢!

基于Java的OA系统的设计与实现相关推荐

  1. 基于JAVA图书借阅系统的设计与实现计算机毕业设计源码+系统+lw文档+部署

    基于JAVA图书借阅系统的设计与实现计算机毕业设计源码+系统+lw文档+部署 基于JAVA图书借阅系统的设计与实现计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  2. 基于java的oa协同办公系统_基于JAVA的OA系统的制作毕业设计论文

    <基于JAVA的OA系统的制作毕业设计论文.doc>由会员分享,可免费在线阅读全文,更多与<基于JAVA的OA系统的制作毕业设计论文>相关文档资源请在帮帮文库(www.woc8 ...

  3. JAVA做OA用到手机_基于JAVA的OA系统的制作毕业设计论文

    <基于JAVA的OA系统的制作毕业设计论文.doc>由会员分享,可免费在线阅读全文,更多与<基于JAVA的OA系统的制作毕业设计论文>相关文档资源请在帮帮文库(www.woc8 ...

  4. 【JAVA毕设】基于Java的在线购物系统的设计与实现

    目录 基于Java的在线购物系统的设计与实现 1.功能模块 2.系统设计思想 主要代码展示 源码及说明文档下载路径 基于Java的在线购物系统的设计与实现 电子商务(Electronic Commer ...

  5. 基于java的婚庆策划系统的设计与实现计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java的婚庆策划系统的设计与实现计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java的婚庆策划系统的设计与实现计算机毕业设计源码+系统+lw文档+mysql数据库+调试部 ...

  6. Lu022基于Java人才招聘系统的设计与实现【附文献三万字】

    一.摘要 当今社会,随着科技进步和智能化的到来,IT行业已经成为了一大热门领域.越来越多的人选择了投身此事业.但与此同时,我们发现市面上虽然已经有了很不错的招聘平台和系统.但IT行业是一个比较特殊的领 ...

  7. 基于JAVA售楼系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA售楼系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA售楼系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 ...

  8. 基于JAVA智慧校园系统后端计算机毕业设计源码+系统+数据库+lw文档+部署

    基于JAVA智慧校园系统后端计算机毕业设计源码+系统+数据库+lw文档+部署 基于JAVA智慧校园系统后端计算机毕业设计源码+系统+数据库+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  9. 基于SpringBoot的企业OA系统的设计与实现,Java毕业设计项目,高质量毕业论文范例,源码,数据库脚本,项目导入运行视频教程,论文撰写教程

    目录 课题背景 项目技术栈 适合对象 适合课题 项目功能概述 高质量论文范例(附原图,可再次编辑和修改) 毕业设计撰写视频教程 部分运行截图 课题背景 82.7%的受访白领表示认为数字化技术极大地提高 ...

  10. 基于JAVA幼儿早教系统软件设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA幼儿早教系统软件设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA幼儿早教系统软件设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构 ...

最新文章

  1. CVPR 2021 | RfD-Net: 从点云中重建三维物体实例
  2. 解决ftp上传connection reset错误
  3. MyBatis 插件原理与自定义插件
  4. 有类似split的命令吗_5分钟学linux命令之split
  5. CSDN挑战编程——《金色十月线上编程比赛第二题:解密》
  6. iou画 yolov3_专栏 | 【从零开始学习YOLOv3】4. YOLOv3中的参数进化
  7. php中socket的使用
  8. java中怎么删除多表连接_在Java中从多个列表中合并和删除重复的最佳方式
  9. Mybatis中tinyint(1)数据自动转化为boolean处理
  10. python split函数 空格_最易懂的Python新手教程:从基础语法到代码详解
  11. 卡巴斯基KEY大集合
  12. java8 32位脱机安装_java8离线安装包32位 官方最新版
  13. 音响话筒鸣叫测试软件,音响助手:可跨平台USB测试麦,秒变手机测量话筒
  14. java 权限访问共享文件夹_在Java程序中读写windows共享文件夹
  15. 我的世界JAVA网易版mod_我的世界中国版严重问题 网易禁止加入mod遭forge谴责
  16. android 入门教程速成,Android入门基础教程(小白速成1)
  17. 项目采购管理和干系人管理
  18. 数据挖掘工具---Spark SQL使用
  19. VS2013中添加现有窗体项
  20. 生命与负熵---宇宙的心弦

热门文章

  1. 手机号码检测开通微信工具如何进行选择
  2. 自己设计过App的数据库框架?还是只是停留在使用ormlite greenDao这类框架,一篇文章帮你解答...
  3. SPSS之多因素方差分析
  4. 【福利】论机房如何关闭方正软件保护卡
  5. 在线UTF-8转换成GBK工具
  6. 嵌入式uml绘图工具_新的可嵌入制图工件
  7. zabbix保姆级安装教程
  8. 考上一级建造师很牛吗?让我从一个屌丝技术员到项目经理
  9. 远程桌面连接,运维工程师-必备软件【MultiDesk】
  10. matlab仿真AMI码变换,matlab编程