Maven
第32集讲安装
Maven文件导入方式
先把对应文件夹拖到资源管理器
然后再让idea识别出这个是maven,记得通过pom.xml打开
依赖配置
Maven Repository: Search/Browse/Explore
排除依赖
命令行传参调用mvn时,要先配置MAVEN_HOME及其path,且同时要使得jdk匹配
测试
Junit
先导入,在pom.xml中
<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>5.9.1</version><scope>test</scope></dependency>
</dependencies>
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版)
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");});}
}
注解
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);}
}
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");});}
}
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");
// }
}
跳过该测试周期
C:\Users\Lenovo.m2\repository\org\springframework\spring-context\6.1.4
直接找到maven的本地仓库,cmd调用命令行,
C:\Users\Lenovo.m2\repository>del /s *.lastUpdated
仓库里面有一个del.bat格式的文件,直接双击运行脚本就可以删除
后端
Spring
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+"~";}
}
aliyun里面会默认给你一个demo包,调用前得先删掉这个包
https://docs.spring.io/spring-boot/docs/3.1.3/reference/htmlsingle/#using.build-systems.starters
HTTP协议
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";}
}