Java面向对象程序设计 课件 项目9 新一线城市智慧交通数据采集与治理_第1页
Java面向对象程序设计 课件 项目9 新一线城市智慧交通数据采集与治理_第2页
Java面向对象程序设计 课件 项目9 新一线城市智慧交通数据采集与治理_第3页
Java面向对象程序设计 课件 项目9 新一线城市智慧交通数据采集与治理_第4页
Java面向对象程序设计 课件 项目9 新一线城市智慧交通数据采集与治理_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目9新一线城市智慧交通数据采集与治理学习目标知识技能目标:掌握需求分析的方法能根据需求分析完成界面原型设计能用POI导入Excel文件能用对敏感信息进行脱敏处理能用JDBCAPI完成对数据库的操作能用聚合函数完成数据的统计分析能对项目完成打包和部署职业素养目标:通过不断完善方案,培养学生不断实践、追求卓越的职业素养通过小组的分工协作,培养学生善于沟通的技能、提升团队协作意识通过反复优化SQL语句,精益求精,避免程序出现SQL注入漏洞任务9.1系统需求分析和设计1项目“新一线城市智慧交通数据采集与治理”,按照敏捷迭代开发方法将项目划分成了需求分析和设计、系统界面实现、市长热线等数据源数据抽取、异常信息清洗、数据持久化、分类指标计算、系统部署打包七个任务。任务1“需求分析和设计”,主要包含:获取需求分析、制定开发计划、搭建协同开发环境、完成界面原型设计等。任务详解任务描述技术准备微课1-1Java前世今生技能点1:完成需求分析任务9.1系统需求分析和设计1在企业开发过程中,完成需求分析的流程为:第一步:获取用户需求;第二步:整理系统需求;第三步撰写需求规格说明书。第一步:获取用户需求微课1-1Java前世今生任务9.1系统需求分析和设计1常用的获取用户需求的方法有八种用户访谈问卷调研用户反馈头脑风暴竞品分析文献分析观察法数据分析法微课1-1Java前世今生任务9.1系统需求分析和设计11.直接采集:

用户自己提需求,得到一手需求。更准确!

2.间接采集:得到二手需求,经过加工过的,效率更高,有可能被曲解。

需求分析方法的分类用户访谈问卷调研用户反馈头脑风暴竞品分析文献分析观察法数据分析法企业实践经验:二者结合全员参与采集,产品经理处理微课1-1Java前世今生任务9.1系统需求分析和设计1第一步:获取用户需求需求分析方法的分类产品规划阶段:用户访谈项目早期:

调查问卷项目实施过程:定性地做上线后优化阶段:数据分析法需求分析贯穿项目开发整个生命周期,根据项目的进程,现阶段我们应该采用哪些方法呢?微课1-1Java前世今生任务9.1系统需求分析和设计1第二步:用户需求转换成系统3.追问用户遇到的问题挖掘用户的需求和痛点初学者的共性问题:直接根据用户描述整理需求

1.用心听不要随意打断用户,不要和用户起争执

避免伪需求

2.对用户描述做验证技巧:概况用户的话。“你的意思是说....,是这样的吗?”微课1-1Java前世今生任务9.1系统需求分析和设计1第二步:用户需求转换成系统行业需求转换法宝——Y模型用户需求系统需求转换问题域到方案域的硬核解题思路整理系统需求核心技能点技术准备微课1-1Java前世今生技能点2:用UML绘制用例图任务9.1系统需求分析和设计1参与者与用例之间的关系技术准备微课1-1Java前世今生技能点3:界面原型设计任务9.1系统需求分析和设计1技术准备微课1-1Java前世今生技能点3:用UML绘制类图任务9.1系统需求分析和设计1教师演示最少知识原则开闭原则里氏替换原则单一职责原则接口隔离原则依赖倒置原则类设计的原则任务实施第一步:制定需求分析方案,完成需求分析

第二步:根据用户需求,整理出系统需求

第三步:根据需求分析结果,完成界面原型设计

第四步:完成类设计

任务9.1系统需求分析和设计1AEBCD小组协作,完成任务评价测试任务9.1系统需求分析和设计1评价指标评价标准分值得分需求分析需求分析方法选择恰当,准确获取用户需求20

系统需求准确将用户需求转换成系统需求20

界面原型根据需求分析结果绘制界面原型20

类设计类设计符合要求20

团队协作团队协作完成,沟通有效20

拓展提升任务9.1系统需求分析和设计1在敏捷开发企业中,传统的详尽、冗长的需求规格说明书往往不被推荐,因为敏捷方法注重灵活性、快速响应变化和持续交付价值。然而,在敏捷开发中仍然存在对需求和规格的记录和管理需求,尽管形式可能有所不同。扫码查看敏捷开发企业中需求规格说明书的格式。任务描述用Java实现用户登录界面和系统主界面的实现。要求布局合理,方便用户使用。具体任务任务9.2系统界面实现2技术准备任务9.2系统界面实现2技能点1:用JTable类实现在表格中显示数据用JTable创建表格的步骤:第一步:创建一个包含数据的二维数组或TableModel第二步:使用这个数据创建JTable第三步:将JTable添加到JScrollPane中第四步:将JScrollPane添加到窗口或面板中任务9.2系统界面实现2案例:用表格显示学生的信息教师演示技术准备任务9.2系统界面实现2技能点2:用BoxLayout实现界面布局使用BoxLayout布局的步骤:第一步:创建容器类对象JPanelpanel=newJPanel();JPanelleftPanel=newJPanel();JPanelrightPanel=newJPanel();第二步:创建BoxLayout的对象//创建BoxLayout的对象,采用水平布局BoxLayoutboxLayout=newBoxLayout(panel,BoxLayout.X_AXIS);第三步:为容器设置布局panel.setLayout(boxLayout);panel.add(leftPanel);

panel.add(rightPanel);第四步:往容器里添加组件leftPanel.add(newJButton("LeftButton1"));leftPanel.add(newJButton("LeftButton2"));rightPanel.add(newJButton("RightButton1"));任务9.2系统界面实现2案例:编写学生信息管理系统界面教师演示任务9.2系统界面实现2任务实施任务9.2系统界面实现2任务实施第一步:根据界面原型图,创建登录界面写出登录界面用到的组件类和布局管理器类。容器类:

一般组件类:

布局管理器类:

第二步:根据界面原型图,创建系统主界面写出系统主界面用到的组件类和布局管理器类。容器类:

一般组件类:

布局管理器类:

第三步:运行程序任务9.2系统界面实现2评价测试评价指标评价标准分值得分登录界面界面布局合理,和界面原型一致20

系统主界面采用BoxLayout,界面和原型设计一致20

菜单根据原型图,创建相应的菜单20

界面跳转实现登录后跳转到主界面20

编码规范编码规范,有合理的注释20

任务9.2系统界面实现2拓展提升技能提升1——首选项APIjava.util.prefs.Preferences类用于提供对用户和系统首选项的持久化存储支持。这个类允许您以键-值对的形式存储和检索配置数据,这些数据通常用于保存用户特定的偏好设置,如用户最后处理的文件、窗口的最后位置、字体大小等。Preferences类存储用户首选项的特点:(1)提供简单的键-值存储:Preferences类让您可以方便地存储和检索键-值对形式的配置数据。(2)持久化存储:首选项数据在用户会话之间持久化存储,确保用户配置的持久性。(3)跨平台支持:Preferences类的实现会根据操作系统选择适当的后端存储机制,因此具有跨平台特性。任务9.2系统界面实现2拓展提升(1)得到Preferences类的实例//获取代表当前用户下和节点名相同的偏好设置的Preferences实例PreferencesuserPrefs=Preferences.userRoot().node("org.example");//获得系统级偏好设置的Preferences的实例PreferencessysPrefs=Preferences.systemRoot();(2)设置偏好设置//将变量name中的用户名保存到"name"中userPrefs.put("name",name);//将变量pwd中的密码保存到"password"中userPrefs.put("password",pwd);(3)获取用户偏好//获得Preferences的实例PreferencesuserPrefs=Preferences.userRoot().node("org.example");txtName.setText(userPrefs.get("name","admin"));txtPwd.setText(userPrefs.get("password","123456"));Preferences类的用法任务9.2系统界面实现2案例:为用户登录添加记住密码功能教师演示任务9.3不同数据源数据抽取3

根据任务需求,需要将“市长热线”“问政四川”“962122”“信访件”等不同数据源的数据抽取到系统中来。本任务要求:将Excel格式中的数据导入到表格中。任务详解任务描述任务9.3不同数据源数据抽取3技术准备技能点1:认识常用的读取Excel第三方库

读取Excel数据并将其加载到JTable中,通常采用第三方库文件来解析Excel文件。常用的开源的第三方库有ApachePOI、EasyExcel和JExcel等。ApachePOI提供了用于读取和写入Excel文件的强大功能EasyExcel主要面向大量数据的读写场景,提供了流式读写Excel的能力,减少了内存占用JExcel简单的Excel操作,JXL是一个轻量级的选择任务9.3不同数据源数据抽取3技术准备技能点2:用POI实现导入Excel文件<dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.3</version></dependency>在pom.xml中配置POI的依赖InputStreamis=newFileInputStream(filename);创建一个文件输入流Workbookworkbook=newXSSFWorkbook(fis);创建一个XSSFWorkbook对象for(Rowrow:sheet){//rowData存放每一行的数据List<Object>rowData=newArrayList<>();将sheet的内容存入集合中HSSFRowrow=sheet1.getRow(0);从工作表对象sheet1中得到行对象Sheetsheet=workbook.getSheetAt(0);创建一个Sheet对象任务9.3不同数据源数据抽取3案例:读取Excel文件到JTable中第一步:任务分析第二步:编码实现(1)新建一个Maven项目,在pom.xml中配置POI(2)新建ReadExcel类,实现将Excel文件内容读到ArrayList中(3)新建ReadExcelForm类,继承自JFrame,实现点击按钮,将Excel文件内容读到JTable中第三步:运行程序任务9.3不同数据源数据抽取3任务实施第一步:任务分析

第二步:编码实现(1)新建JavaMaven项目,在pom.xml中配置POI

(2)编写读取Excel的类,写出核心语句:

(3)为系统主界面添加事件监听,实现抽取不同事件源的数据。写出核心语句:

第三步:运行程序AEBCD小组协作,完成任务任务9.3不同数据源数据抽取3评价测试评价指标评价标准分值得分Maven配置正确在pom.xml中配置POI10

事件监听器类正确识别事件源、编写事件监听器类20

读取Excel正确实现将Excel文件读到集合中25

表格显示正确将集合中的内容在表格中显示25

编码规范变量命名规范、有合理的注释20

任务9.3不同数据源数据抽取3技术拓展技能提升1——文件加锁机制

多个进程或者多个线程同时读写同一个文件时,为保证并发访问的数据一致性和完整性,需要采用某种方式进行通信。文件锁机制可以有效地解决这个问题。java.nio.channels.FileChannel和FileLock类可以实现对文件加锁,具体步骤:第一步:打开文件并获取FileChannel第二步:获取文件锁第三步:检查是否成功获取锁第四步:执行文件操作第五步:释放文件锁第六步:关闭FileChannel和文件任务9.3不同数据源数据抽取3案例:将用户偏好信息写入文件,保证数据的一致性和完整性第一步:任务分析任务9.2拓展提升中介绍的首选项API已经解决了同步和并发的问题,当需要自己管理文件读写时,需要在程序中用FileChannel和FileLock类为文件加锁或者释放锁。第二步:编码实现(1)新建一个Java项目(2)新建一个类,用于实现写文件时为文件加锁,写完后释放锁。(3)编写测试类第三步:运行程序教师演示任务9.4异常信息数据清洗4任务描述

在上一个任务中实现从不同数据源获取到数据并将其转换成集合的形式在JTable中显示,接下来需要对数据做以下处理:(1)对敏感信息进行隐藏(2)对缺失的信息进行补全(3)对日期和时间采用标准格式显示,日期采用“yyyy-MM-dd”的格式,时间采用“hh:mm:ss”任务详解任务9.4异常信息数据清洗4技术准备技能点1:敏感信息隐藏技术第7页:1.4.5在相关法律法规的规范下,合法获取数据,保护隐私数据。任务9.4异常信息数据清洗4技术准备技能点1:敏感信息隐藏技术数据采集的合规条款任务9.4异常信息数据清洗4技术准备保护隐私数据主要技术1342对敏感数据进行替换、失真等变换降低数据敏感度,保留其可用性和统计性等特征。数据脱敏一种新型密码技术,密文具有分析、统计性特征同态加密个人信息记录的匿名,无法找到自然人,且不能复原匿名化有严格的数学模型,核心思想是随机化算法,为每个采集数据加入噪声差分隐私任务9.4异常信息数据清洗4技术准备技能点2:为电话号码进行脱敏处理实现对电话号码进行脱敏处理,采用截取子串方法subString()substring方法介绍:publicStringsubstring(intbeginIndex)返回一个字符串,该字符串是此字符串的子字符串。

子字符串以指定索引处的字符开头,并扩展到该字符串的末尾。示例代码:以下代码取出电话号码的后四位Stringphone=;StringsuffPhone=phone.substring(7);任务9.4异常信息数据清洗4案例:键盘输入姓名和电话号码,实现对姓名和电话号码隐藏教师演示第一步:任务分析(1)实现姓名的隐藏,需要先统计姓名的长度,如果姓名长度为2,则第二个字符用*,如果长度大于或者等于3,先取第一个字符,再去最后一个字符,中间字符用*表示。(2)实现电话号码phone的隐藏:先取电话号码的前三位,再取电话号码的后四位,再和“***”拼接。第二步:编码实现创建一个Java项目,先输入姓名和电话号码,再对姓名和电话号码进行脱敏处理,最后再输出脱敏后的数据。第三步:运行程序任务9.4异常信息数据清洗4技术准备技能点3:对日期进行标准化处理不同数据来源的数据,日期格式可能不一样。对日期格式进行处理需要用到SimpleDateFormat类,该类位于java.text包中,主要用于解析和格式化日期,允许用户以自定义的方式显示日期和时间。第一步:任务分析(1)获取系统当前时间:newjava.util.Date();(2)按照指定格式显示时间:SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");第二步:编码实现publicstaticvoidmain(String[]args){

SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddhh:mm:ss");

StringdateStr=format.format(newDate());

System.out.println(dateStr);}第三步:运行程序教师演示案例:按照“yyyy-MM-ddhh:mm:ss”的格式显示系统当前时间任务9.4异常信息数据清洗4任务实施AEBCD小组协作,完成任务第一步:完成对数据中的敏感信息脱敏处理识别哪些是敏感信息:

采用的敏感信息隐藏技术:

核心代码:

第二步:完成对缺失信息的补全识别缺失信息有哪些:

核心代码:

第三步:对所有日期进行标准化处理核心代码:

第四步:运行程序任务9.4异常信息数据清洗4评价测试评价指标评价标准分值得分创建项目正确创建Java项目10

敏感信息隐藏对电话号码等敏感信息隐藏30

信息补全实现对缺失信息补全30

日期处理所有日期和时间按照“yyyy-MM-ddhh:mm:ss”显示20

编码规范变量命名规范、有合理的注释10任务9.4异常信息数据清洗4任务实施AEBCD小组协作,完成任务第一步:完成对数据中的敏感信息脱敏处理识别哪些是敏感信息:

采用的敏感信息隐藏技术:

核心代码:

第二步:完成对缺失信息的补全识别缺失信息有哪些:

核心代码:

第三步:对所有日期进行标准化处理核心代码:

第四步:运行程序任务9.4异常信息数据清洗4技术拓展JDK15中新增了文本块特性,可以更简洁地表示多行的字符串常量。文本块以"""开头,后面是一个换行符,并以"""结束。比如:Stringstr2="""HelloWorld""";该字符串等价于:Stringstr2="Hello\nWorld\n";任务9.5数据持久化5任务描述

按照需求将不同数据源的数据清洗完成后,需要将符合要求的数据保存到数据库中永久存放起来,便于后期查询、分析和统计。本任务的要求是运用JDBCAPI将数据保存到数据库中。任务详解任务9.5数据持久化5技术准备技能点1:识别JDBCAPI中常用的类和接口DriverManager类是JDBCAPI的管理层,提供对JDBC驱动程序(Driver)的管理。Connection接口是指应用程序和数据库的连接。Statement接口:由Connection产生、负责执行SQL语句PreparedStatement接口:由Connection产生、负责执行预编译的SQL语句CallableStatement接口:由Connection产生、负责执行存储过程

ResultSet:负责保存Statement执行后所产生的查询结果任务9.5数据持久化5技术准备技能点2:用Statement接口实现查询信息Statement接口用于在已经建立的连接的基础上向数据库发送要执行的SQL语句。Statement的对象用于执行不带参数的简单的SQL语句,它由Connection接口的createStatement()方法生成。方法2方法1Statementstmt=con.createStatement(inttype,intconcurrency);Statement

stmt=con.createStatement();任务9.5数据持久化5案例:查询包含有指定书名的所有图书教师演示第一步:任务分析先加载驱动程序,其次,建立和数据源的连接,再次,创建Statement,最后执行语句。(1)加载驱动程序:Class.forName("com.mysql.jdbc.Driver");(2)确定和数据源连接的url,用户名和密码url="jdbc:mysql://localhost:3306/mybookshop";userName="test01";pwd="123456";(3)创建Statement对象Statementstmt=connection.createStatement();Stringsql="select*frombookswheretitlelike'%"+title+"%'";(4)执行语句

ResultSetrs=stmt.executeQuery(sql);第二步:编码实现第三步:运行程序任务9.5数据持久化5技术准备技能点3:用PreparedStatement接口实现删除信息PreparedStatement接口是Statement接口的子接口,用于处理需要被多次执行的带有输入参数的SQL语句。PreparedStatement执行时已经将SQL语句编译完成,省去了编译SQL语句的时间,因此效率要比Statement高。示例代码//编写要执行的SQL语句

Stringsql="deletefrombookswhereisbn=?";

//得到PreparedStatement的实例PreparedStatementstmt=connection.prepareStatement(sql);//设置参数stmt.setString(1,isbn);//执行语句intcount=stmt.executeUpdate();任务9.5数据持久化5案例:删除指定isbn的图书教师演示第一步:任务分析第二步:编码实现publicbooleandeleteBookByIsbn(Stringisbn){Stringsql="deletefrombookswhereisbn=?";try{PreparedStatementstmt=connection.prepareStatement(sql);stmt.setString(1,isbn);intcount=stmt.executeUpdate();if(count>0){returntrue;}}catch(SQLExceptione){......}returnfalse;}第三步:运行程序任务9.5数据持久化5技术准备技能点4:用CallableStatement接口访问存储过程CallableStatement接口继承自PreparedStatement接口,用于执行数据库的存储过程。形式2形式1{call存储过程名()}带参数的存储过程存储过程的调用有两种形式不带参数的存储过程{call存储过程名(?,?,……)}任务9.5数据持久化5技术准备技能点5:将数据库连接信息写入属性文件数据库访问需要用到的JDBC驱动程序名称、URL、用户名和密码等信息是写到程序中的,当用户要连接的数据库发生改变时,就需要修改程序,降低了程序的可扩展性。因此,在实际应用中,我们通常把上面的信息写到扩展名为properties的属性文件中,提高程序可扩展性。第一步在项目的“resources”下新建属性文件“perties”,里面包含Java连接数据库的驱动程序、url、userName和password第二步InputStreamin=ClassLoader.getSystemResourceAsStream(name);Propertiesp=newProperties();p.load(in);在Java项目中新建属性文件将属性文件的内容读取到Properties中任务9.5数据持久化5案例:修改UserDao类,实现从属性文件中读取数据库连接信息教师演示第一步:在项目的“resources”下,新建属性文件“perties”第二步:在UserDao类中,将属性文件内容读取到Properties中核心代码://将属性文件perties的内容读取到Properties对象中Propertiesp=newProperties();p.load(UserDao.class.getResourceAsStream("/perties"));任务9.5数据持久化5技术准备技能点6:编写数据库访问工具类对数据库的增删改查操作都需要按照相同的步骤来完成,因此,在程序中会出现大量重复的代码。因此,可以编写数据库访问工具类,将驱动加载、得到链接和释放链接的操作放到这个工具类中,在DAO类中,需要链接时,从工具类中去取,这样可以避免代码冗余。任务9.5数据持久化5案例:编写数据库链接工具类,简化数据库访问教师演示第一步:编写属性文件在项目的“Resources”下新建属性文件perties第二步:编写数据库链接工具类将工具类放到org.example.util包中,在静态语句块中完成驱动加载和获取连接,包含得到连接和关闭连接的静态方法。核心代码:publicclassDataBaseUtils{staticConnectionconnection;static{//加载驱动程序}publicstaticConnectiongetConnection(){returnconnection;}第三步:修改UserDao类和BookDao类任务9.5数据持久化5任务实施AEBCD小组协作,完成任务第一步:任务分析1.分析完成该任务需要用到的数据库连接信息2.要用到的JDBCAPI中的哪些接口和类第二步:编码实现写出操作数据库的核心语句第三步:运行程序任务9.5数据持久化5评价测试评价指标评价标准分值得分创建项目正确创建Java项目10

读取属性文件正确定义属性文件20

数据库工具类正确编写数据库工具类25

写数据库正确将清洗后的数据写入数据库25

编码规范变量命名规范、有合理的注释20任务9.5数据持久化5技术拓展——数据库连接池技术什么是池化技术数据库连接登录认证同步数据到BI平台BI平台池化技术ConnConnConnConn任务9.5数据持久化5技术拓展——数据库连接池技术常用数据库连接池技术DRUID:是阿里巴巴提供的开源连接池,是目前最好用的连接池常用连接池DBCPC3P0DRUID任务9.6分类等指标计算6任务描述

数据保存到数据库之后,可以对数据做统计分析。本任务要求:1.统计分析投诉类别总量。2.统计分析投诉来源总量。3.统计连续两个月投诉量增长的类别。任务详解任务9.6分类等指标计算6技术准备技能点1:使用聚合函数进行统计Java中,完成对数据库中的数据进行统计,会用到JDBCAPI对数据库进行查询操作,进行统计分析,会用到数据库的计数、求和、求平均等聚合函数。常用聚合函数4MAX()3AVG()用于计算某列的总和用于计算某列的平均值返回某列的最大值返回某列的最小值用于计算表中的记录数或某一列中非NULL值的数量。1COUNT()2SUM()5MIN()任务9.6分类等指标计算6案例:统计MyBookShop数据库中价格高于平均价格的图书的数量教师演示第一步:任务分析(1)统计价格高于平均价格的图书数量的SQL语句为:selectcount(*)frombookswhereUnitPrice>(selectavg(UnitPrice)frombooks)(2)用到的主要类:数据库工具类:DataBaseUtils,实体类:Books,DAO类:BookDao第二步:编码实现(1)新建一个Java项目,导入Java连接MySQL的驱动程序(2)在项目“resources”下新建一个属性文件perties(3)新建Books类,属性和数据库中Books表的字段一致(4)新建DataBaseUtils类(5)新建BookDao类,实现统计价格高于平均价格的图书数量第三步:运行程序任务9.6分类等指标计算6技术准备技能点2:在FineBI平台展示统计信息从多种数据源导入,包括数据库、Excel文件等。选择合适的数据源,并将数据导入FineBI的数据模型中第一步:导入数据根据数据的性质和展示需求,选择合适的图表类型第三步:选择图表类型根据需要,可以添加计算指标或进行数据的交叉分析第五步:绑定数据通过拖拽组件的方式,在即时分析页面快速构建你的报表或仪表盘第二步:创建报表或仪表盘设置图表的标题、坐标轴标签、图例等属性,添加筛选条件、排序方式和汇总方式,以便更好地展示数据。第四步:配置组件属性根据需求选择合适的布局方式,并对组件进行微调以达到最佳的展示效果第六步:调整布局完成报表或仪表盘的创建后,将其保存并分享给其他人查看第七步:保存与分享任务9.6分类等指标计算6任务实施AEBCD小组协作,完成任务第一步:统计分析投诉类别总量写出操作数据库的核心语句:

第二步:统计分析投诉来源总量写出操作数据库的核心语句:

第三步:统计连续两个月投诉量增长的类别写出操作数据库的核心语句:

第四步:在FineBI平台中展示数据任务9.7系统测试和打包7任务描述

项目功能开发过程中,需要对系统功能进行单元测试,系统功能完成后,会交给专门的测试部门或者测试公司完成测试,测试通过后,需要对项目进行打包和部署。软件测试教材中会专门讲解软件测试的方法。本任务主要完成:(1)通过单元测试,完成对系统功能的测试(2)将项目打包生成可执行jar任务详解任务9.7系统测试和打包7技术准备技能点1:JUnit单元测试单元测试的作用主要是为了确保代码中的各个单元(通常是一个方法或类)的功能和逻辑是正确的。JUnit是一个流行的Java单元测试框架,使用JUnit进行单元测试的步骤:编写需要测试的业务类或方法。这些代码应该实现特定的功能或逻辑第二步:编写业务代码为每个需要测试的类或方法创建一个对应的测试类。测试类的命名通常遵循一定的规范,如以“Test”结尾,并包含被测试类的名称。在Maven项目中,测试类包含在test文件夹中。第三步:定义测试类<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency>第一步:导入JUnit依赖(1)方法声明必须是public修饰的。(2)方法没有返回值(返回类型为void)。(3)方法没有参数。(4)方法上需要添加@Test注解,以标识这是一个JUnit测试方法。第四步:编写测试方法01020304任务9.7系统测试和打包7技术准备技能点2:用jar命令完成项目的打包可以将一个项目打包成可执行的Jar包,也可以将项目中的部分文件打包供其他程序使用。JDK安装目录的bin目录中提供了jar命令完成打包工作,也可以用IDEA的快速打包。1.用jar命令打包语法:jar{ctxui}[vfmn0PMe][jar-file][manifest-file][entry-point][-Cdir]files...示例代码:将两个类文件归档到一个名为classes.jar的档案中jarcvfclasses.jarFoo.classBar.class示例代码:使用现有的清单文件'mymanifest'并将foo/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论