Day36(6)-F:\硕士阶段\Java\课程代码\后端\web-ai-code\web-ai-project01

news/2025/11/12 21:41:13/文章来源:https://www.cnblogs.com/David0919/p/19215559

Maven

image-20251112123615692

image-20251112123637160

image-20251112124812029

image-20251112124910829

image-20251112125117307

第32集讲安装

image-20251112133838796

Maven文件导入方式

先把对应文件夹拖到资源管理器

然后再让idea识别出这个是maven,记得通过pom.xml打开

image-20251112135153340

image-20251112135316187

依赖配置

Maven Repository: Search/Browse/Explore

image-20251112140234401

排除依赖

image-20251112140649355

image-20251112140702198

image-20251112141937913

image-20251112142120903

image-20251112142207480

image-20251112142420538

image-20251112142436483

命令行传参调用mvn时,要先配置MAVEN_HOME及其path,且同时要使得jdk匹配

image-20251112152110679

测试

image-20251112152713020

image-20251112152924818

image-20251112152956164

Junit

先导入,在pom.xml中

<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.9.1</version><scope>test</scope></dependency>
</dependencies>

image-20251112153325215

image-20251112153528003

image-20251112155251837

image-20251112155324108

package com.itheima;import org.junit.jupiter.api.Test;import java.time.LocalDate;/*** 测试类*/
public class UserServiceTest {@Testpublic void testGetAge(){UserService userService = new UserService();Integer age = userService.getAge("100000200010011011");System.out.println(age);}
}

断言机制(maven版)

image-20251112161101221

package com.itheima;import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;import java.time.LocalDate;/*** 测试类*/
public class UserServiceTest {@Testpublic void testGetAge(){UserService userService = new UserService();Integer age = userService.getAge("100000200010011011");System.out.println(age);}@Testpublic void testGetGender(){UserService userService = new UserService();String gender = userService.getGender("100000200010011011");System.out.println(gender);}/*** 基于断言*/@Testpublic void testGetGenderwithAssert(){UserService userService = new UserService();String gender = userService.getGender("100000200010011011");Assertions.assertEquals("男", gender,"男女颠倒");System.out.println(gender);}@Testpublic void testGetGenderwithAssert2(){UserService userService = new UserService();//断言Assertions.assertThrows(IllegalArgumentException.class, ()->{userService.getGender("null");});}
}

image-20251112161205320

注解

package com.itheima;import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;import java.time.LocalDate;/*** 测试类*/
@DisplayName("用户信息的测试类")
public class UserServiceTest {//    @BeforeAll
//    public static void beforeAll(){
//        System.out.println("before all");
//    }
//
//    @AfterAll
//    public static void afterAll(){
//        System.out.println("after all");
//    }
//
//    @BeforeEach
//    public void beforeEach(){
//        System.out.println("before each");
//    }
//
//    @AfterEach
//    public void afterEach(){
//        System.out.println("after each");
//    }
//
//    @Test
//    public void testGetAge(){
//        UserService userService = new UserService();
//        Integer age = userService.getAge("100000200010011011");
//        System.out.println(age);
//    }
//
//    @Test
//    public void testGetGender(){
//        UserService userService = new UserService();
//        String gender = userService.getGender("100000200010011011");
//        System.out.println(gender);
//    }
//
//    /**
//     * 基于断言
//     */
//    @Test
//    public void testGetGenderwithAssert(){
//        UserService userService = new UserService();
//        String gender = userService.getGender("100000200010011011");
//        Assertions.assertEquals("男", gender,"男女颠倒");
//        System.out.println(gender);
//    }
//
//    @Test
//    public void testGetGenderwithAssert2(){
//        UserService userService = new UserService();
//        //断言
//        Assertions.assertThrows(IllegalArgumentException.class, ()->{
//            userService.getGender("null");
//        });
//    }/*** 参数化测试*/@DisplayName("测试用户性别")@ParameterizedTest@ValueSource(strings = {"100000200010011011","100000200010011013","100000200010011011"})public void  testGetGender2(String idCard){UserService userService = new UserService();String gender = userService.getGender(idCard);//断言Assertions.assertEquals("男",gender);}
}

image-20251112165250561

package com.itheima;import org.junit.jupiter.api.*;@DisplayName("用户信息测试类")
public class UserService2Test {private UserService userService;@BeforeEachpublic  void beforeEach() {userService = new UserService();}/*** 测试获取性别*/@Test@DisplayName("获取性别-null")public void testGetGender1() {Assertions.assertThrows(IllegalArgumentException.class, () -> {userService.getGender(null);});}/*** 测试获取性别*/@Test@DisplayName("获取性别-空串")public void testGetGender2() {Assertions.assertThrows(IllegalArgumentException.class, () -> {userService.getGender("");});}/*** 测试获取性别*/@Test@DisplayName("获取性别-长度不足")public void testGetGender3() {Assertions.assertThrows(IllegalArgumentException.class, () -> {userService.getGender("123");});}/*** 测试获取性别*/@Test@DisplayName("获取性别-长度超出")public void testGetGender4() {Assertions.assertThrows(IllegalArgumentException.class, () -> {userService.getGender("100000200010011011123");});}/*** 测试获取性别-正常*/@Test@DisplayName("获取性别-正常男性身份证")public void testGetGender5() {String gender = userService.getGender("100000200010011011");Assertions.assertEquals("男", gender);}@Test@DisplayName("获取性别-正常女性身份证")public void testGetGender6() {String gender = userService.getGender("100000200010011021");Assertions.assertEquals("女", gender);}/*** 测试获取年龄*/@Test@DisplayName("获取年龄-正常")public void testGetAge1() {Integer age = userService.getAge("100000200010011011");Assertions.assertEquals(25, age);}/*** 测试获取年龄*/@Test@DisplayName("获取年龄-null值")public void testGetAge2() {Assertions.assertThrows(IllegalArgumentException.class, () -> {userService.getAge(null);});}/*** 测试获取年龄*/@Test@DisplayName("获取年龄-年龄超长")public void testGetAge3() {Assertions.assertThrows(IllegalArgumentException.class, () -> {userService.getAge("100000200010011011123");});}/*** 测试获取年龄*/@Test@DisplayName("获取年龄-年龄长度不足")public void testGetAge4() {Assertions.assertThrows(IllegalArgumentException.class, () -> {userService.getAge("10000020001001101");});}
}

image-20251112172636960

image-20251112190207336

package com.itheima;//import org.junit.jupiter.api.Test;public class HelloWorld {public static void main(String[] args) {System.out.println("Hello Maven~");}
//    @Test
//    //如果强行在 src/main 中使用 @Test,需手动为 src/main 引入测试依赖(将 <scope>test</scope> 移除),但这会导致主代码包中包含测试依赖,不符合 Maven 规范,因此不推荐这样做。
//    public void test1(){
//        System.out.println("test1");
//    }
}

image-20251112190524921

跳过该测试周期

image-20251112190611696

C:\Users\Lenovo.m2\repository\org\springframework\spring-context\6.1.4

image-20251112191420161

直接找到maven的本地仓库,cmd调用命令行,

C:\Users\Lenovo.m2\repository>del /s *.lastUpdated

image-20251112192137125

仓库里面有一个del.bat格式的文件,直接双击运行脚本就可以删除

后端

image-20251112194132349

Spring

image-20251112194641858

image-20251112194743777

image-20251112195244337

package com.itheima;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController//表示当前类是一个请求处理类
public class HelloController {@RequestMapping("/hello")//标识请求路径public String hello(String name){System.out.println("name:"+name);return "Hello"+name+"~";}
}

image-20251112203318814

aliyun里面会默认给你一个demo包,调用前得先删掉这个包

image-20251112204800892

https://docs.spring.io/spring-boot/docs/3.1.3/reference/htmlsingle/#using.build-systems.starters

image-20251112205344309

HTTP协议

image-20251112210606467

image-20251112210642818

image-20251112211140748

image-20251112211217031

image-20251112211452480

image-20251112211755749

package com.itheima;import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class RequestController {@RequestMapping("/request")public String request(HttpServletRequest request){//1.获取请求方式String method = request.getMethod();//GET还是POSTSystem.out.println("请求方式:"+method);//2.获取请求url地址String url = request.getRequestURL().toString();System.out.println("完整的URL地址:"+url);String uri = request.getRequestURI();System.out.println("完整的URI地址:"+uri);//3.获取请求协议String protocol = request.getProtocol();System.out.println("请求协议:"+protocol);//4.获取请求参数nameString name = request.getParameter("name");String age = request.getParameter("age");System.out.println(name);System.out.println(age);//5.获取请求头-AcceptString accept = request.getHeader("Accept");System.out.println("Accept:"+accept);return "OK";}
}

image-20251112213541970

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/963790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

E. Journey

E. Journey Problem - E - Codeforces \(kruskal\)重构树, 欧拉路径 首先不考虑操作二,那么题目就是问走过所有边回到 \(1\) 的最短路径,如果均仅走过一次,那么整个路径构成欧拉回路,答案为 \(\sum_i w_i\) ,否则…

Dynamics 365 Field Service跨站脚本欺骗漏洞分析

本文详细分析了CVE-2025-62210漏洞,这是一个影响Dynamics 365 Field Service在线版的跨站脚本安全漏洞,允许授权攻击者通过网络进行欺骗攻击,CVSS评分为8.7分的高危漏洞。概述 CVE-2025-62210是Dynamics 365 Field …

Linux优秀的系统--信号(3--信号的保存、阻塞)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:SQL提数与数据分析指南

深入解析:SQL提数与数据分析指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

大家来写 ICPC 西安(没写完)

wait感觉是好题啊,写一下,不过我好像把两场当成同一场了说是。 开题顺序:难度排序。P14444 [ICPC 2025 Xian Practice] Great Indices最开始读错题了,被普及-的题目卡了,我很唐。 考虑至多有一个不是因数,因此我…

[译] 省略 Async 与 Await

https://blog.stephencleary.com/2016/12/eliding-async-await.html当开发者掌握了 async 和 await 的基础知识并能熟练运用后,常会遇到一个设计疑问:如果可以移除 async 和 await 关键字,是否应该这样做?在很多场…

你的代码正在腐烂!你的团队正走在死亡螺旋上:技术债务积累的5个危险信号!

本文深度解析技术债务管理之道,指出技术债务需合理管理而非完全消除,介绍了技术债务的四大类型(设计、代码、测试、文档),以及识别评估模型与偿还策略,并提供了实战案例与预防措施。关注我,掌握企业数字化/信息…

iverilog、gtkwave工具链接

最近在尝试TRAE生成代码,工具生成代码后会检查系统中是否有仿真工具,安装iverilog+gtkwave,方便TRAE调用检查生成的代码。 链接:https://bleyer.org/icarus/****************************************************…

2025 11 12

某NOIP模拟赛T1 一个整除分块类似的东西直接秒了 T2考虑 \([l,r]\) 的交换操作可以看成 \([l,m]\) 和 \([m,r+1]\),故我们可以对这个进行处理即可第23场弘文了这场我T1都没切,我考虑枚举排列和起点之后,我不知道为什…

使用WiX创建Windows应用安装包 - -YADA

参考:官方教程 WiX 工具集(简称 WiX)用于构建 Windows 安装程序,它是构建工具、运行时工具和库的集合,不只是制作基本的安装包,还可以安装IIS网站、创建SQL Server、在Windows防火墙中注册例外。 安装 Wix 工具集…

学生信息管理系统团队项目随笔

一、团队基本信息这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13481…

Total Recall: 如何在Windows下开发输入法

https://github.com/KunYi/W2K_DDK_SAMPLES/archive/refs/heads/main.zip 链接: https://pan.baidu.com/s/1Dw4SZSZUY-lrAiBWTtP_5w 提取码: enjcW2K_DDK_SAMPLES-main/ime/chs下的文件: candd.bmp canddp.bmp cande.…

大数据量场景下的编辑 / 选择 / 详情优化

面对企业系统中主子表页面的卡顿难题,需以全链路“按需”设计破局:通过前端差异提交、后端批量处理与数据层协同,将性能优化内化为无缝的用户体验,让海量数据操作变得举重若轻。在企业级系统开发中,最容易卡顿、超…

简化Python数据结构初始化:从繁琐到优雅的进阶指南 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

RabbitMQ相关

RabbitMQ的AMQP协议是什么 AMQP(Advanced Message Queuing Protocol),高级消息队列协议,提供统一消息服务的开放标准,其核心目标是实现客户端与消息服务之前的高效、安全异步通信,并且在传递的时候不受客户端和开发…

第八天 测试用例编写

一、微信发红包xmind图二、高效编写测试用例的实用技巧 1、用例的来源:公司模板、自己设计、用例管理工具(如禅道) 2、核心字段:用例编号、用例标题、前置条件、用例步骤、预期结果、优先级 3、注意点: (1)用例…

软工团队作业2--需求规格说明书

作业信息这个作业属于哪个课程 首页 - 计科23级34班 - 广东工业大学 - 班级博客 - 博客园这个作业要求在哪里 团队作业2-《需求规格说明书》 - 作业 - 计科23级34班 - 班级博客 - 博客园这个作业的目标 明确团队项目细…

没用的博客园页面的要素介绍

rt1. 关于那几行字点击查看"<b style=color:rgb(119, 248, 255)>又是一年雨季</b>","<b style=color:rgb(119, 248, 255)>青苔悄悄爬满缝隙</b>","<b style=colo…

使用NVIDIA TAO 6和DeepStream 8构建实时视觉检测管道 - 实践

使用NVIDIA TAO 6和DeepStream 8构建实时视觉检测管道 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…