diff --git a/03. 后端Web基础(Maven基础)/.idea/.gitignore b/03. 后端Web基础(Maven基础)/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/03. 后端Web基础(Maven基础)/.idea/03. 后端Web基础(Maven基础).iml b/03. 后端Web基础(Maven基础)/.idea/03. 后端Web基础(Maven基础).iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/.idea/03. 后端Web基础(Maven基础).iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/.idea/compiler.xml b/03. 后端Web基础(Maven基础)/.idea/compiler.xml
new file mode 100644
index 0000000..d31248b
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/.idea/compiler.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/.idea/encodings.xml b/03. 后端Web基础(Maven基础)/.idea/encodings.xml
new file mode 100644
index 0000000..2124ffc
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/.idea/encodings.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/.idea/jarRepositories.xml b/03. 后端Web基础(Maven基础)/.idea/jarRepositories.xml
new file mode 100644
index 0000000..5a2f139
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/.idea/misc.xml b/03. 后端Web基础(Maven基础)/.idea/misc.xml
new file mode 100644
index 0000000..75b56f8
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/.idea/misc.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/.idea/modules.xml b/03. 后端Web基础(Maven基础)/.idea/modules.xml
new file mode 100644
index 0000000..26ede8a
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/.idea/vcs.xml b/03. 后端Web基础(Maven基础)/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/pom.xml b/03. 后端Web基础(Maven基础)/maven-project01/pom.xml
new file mode 100644
index 0000000..9a6eab7
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/pom.xml
@@ -0,0 +1,52 @@
+
+
+ 4.0.0
+
+ com.itheima
+ maven-project01
+ 1.0-SNAPSHOT
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ org.springframework
+ spring-context
+ 6.1.4
+
+
+
+
+ io.micrometer
+ micrometer-observation
+
+
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.9.1
+
+ test
+
+
+
+
+ org.mockito
+ mockito-core
+ 5.7.0
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/src/main/java/com/itheima/HelloWorld.java b/03. 后端Web基础(Maven基础)/maven-project01/src/main/java/com/itheima/HelloWorld.java
new file mode 100644
index 0000000..6626932
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/src/main/java/com/itheima/HelloWorld.java
@@ -0,0 +1,8 @@
+package com.itheima;
+
+public class HelloWorld {
+ public static void main(String[] args) {
+ System.out.println("Hello Maven ~");
+ }
+
+}
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/src/main/java/com/itheima/UserService.java b/03. 后端Web基础(Maven基础)/maven-project01/src/main/java/com/itheima/UserService.java
new file mode 100644
index 0000000..a0c8bb8
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/src/main/java/com/itheima/UserService.java
@@ -0,0 +1,33 @@
+package com.itheima;
+
+import java.time.LocalDate;
+import java.time.Period;
+import java.time.format.DateTimeFormatter;
+
+public class UserService {
+
+ /**
+ * 给定一个身份证号, 计算出该用户的年龄
+ * @param idCard 身份证号
+ */
+ public Integer getAge(String idCard){
+ if (idCard == null || idCard.length() != 18) {
+ throw new IllegalArgumentException("无效的身份证号码");
+ }
+ String birthday = idCard.substring(6, 14);
+ LocalDate parse = LocalDate.parse(birthday, DateTimeFormatter.ofPattern("yyyyMMdd"));
+ return Period.between(parse, LocalDate.now()).getYears();
+ }
+
+ /**
+ * 给定一个身份证号, 计算出该用户的性别
+ * @param idCard 身份证号
+ */
+ public String getGender(String idCard){
+ if (idCard == null || idCard.length() != 18) {
+ throw new IllegalArgumentException("无效的身份证号码");
+ }
+ return Integer.parseInt(idCard.substring(16,17)) % 2 == 1 ? "男" : "女";
+ }
+
+}
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/src/test/java/com/itheima/UserServiceAiTest.java b/03. 后端Web基础(Maven基础)/maven-project01/src/test/java/com/itheima/UserServiceAiTest.java
new file mode 100644
index 0000000..2205e83
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/src/test/java/com/itheima/UserServiceAiTest.java
@@ -0,0 +1,155 @@
+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;
+import java.time.Period;
+import java.time.format.DateTimeFormatter;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.*;
+public class UserServiceAiTest {
+
+ private UserService userService;
+ @BeforeEach // 在每个测试方法执行前执行
+ public void setUp() {
+ userService = new UserService();
+ }
+
+ @Test
+ public void getGender_ValidMaleIdCard_ReturnsMale() {
+ String gender = userService.getGender("100000200010011011");
+ assertEquals("男", gender, "性别获取错误,应为男性");
+ }
+
+ @Test
+ public void getGender_ValidFemaleIdCard_ReturnsFemale() {
+ String gender = userService.getGender("100000200010011022");
+ assertEquals("女", gender, "性别获取错误,应为女性");
+ }
+
+ @Test
+ public void getGender_NullIdCard_ThrowsException() {
+ assertThrows(IllegalArgumentException.class, () -> {
+ userService.getGender(null);
+ }, "无效的身份证号码");
+ }
+
+ @Test
+ public void getGender_InvalidLengthIdCard_ThrowsException() {
+ assertThrows(IllegalArgumentException.class, () -> {
+ userService.getGender("10000020001001101");
+ }, "无效的身份证号码");
+ }
+
+ @ParameterizedTest
+ @ValueSource(strings = {"100000200010011011", "100000200010011031", "100000200010011051"})
+ public void getGender_MultipleMaleIdCards_ReturnsMale(String idCard) {
+ String gender = userService.getGender(idCard);
+ assertEquals("男", gender, "性别获取错误,应为男性");
+ }
+
+ @ParameterizedTest
+ @ValueSource(strings = {"100000200010011022", "100000200010011042", "100000200010011062"})
+ public void getGender_MultipleFemaleIdCards_ReturnsFemale(String idCard) {
+ String gender = userService.getGender(idCard);
+ assertEquals("女", gender, "性别获取错误,应为女性");
+ }
+
+
+
+ /**
+ * 测试正常输入,返回正确的年龄
+ */
+ @Test
+ public void getAge_ValidIdCard_ReturnsCorrectAge() {
+ String idCard = "100000199010011234"; // 出生日期:1990-10-01
+ try (var mockedStaticLocalDate = mockStatic(LocalDate.class);
+ var mockedStaticPeriod = mockStatic(Period.class)) {
+
+ LocalDate birthDate = LocalDate.of(1990, 10, 1);
+ LocalDate currentDate = LocalDate.of(2025, 4, 5); // 当前日期假设为2025年4月5日
+ Period period = Period.between(birthDate, currentDate);
+
+ mockedStaticLocalDate.when(LocalDate::now).thenReturn(currentDate);
+ mockedStaticLocalDate.when(() -> LocalDate.parse("19901001", DateTimeFormatter.ofPattern("yyyyMMdd"))).thenReturn(birthDate);
+ mockedStaticPeriod.when(() -> Period.between(birthDate, currentDate)).thenReturn(period);
+
+ Integer age = userService.getAge(idCard);
+ assertEquals(34, age, "年龄计算错误");
+ }
+ }
+
+ /**
+ * 测试身份证号为null的情况,应抛出异常
+ */
+ @Test
+ public void getAge_NullIdCard_ThrowsException() {
+ assertThrows(IllegalArgumentException.class, () -> {
+ userService.getAge(null);
+ }, "无效的身份证号码");
+ }
+
+ /**
+ * 测试身份证号长度不为18的情况,应抛出异常
+ */
+ @Test
+ public void getAge_InvalidLengthIdCard_ThrowsException() {
+ assertThrows(IllegalArgumentException.class, () -> {
+ userService.getAge("123456789012345"); // 少于18位
+ }, "无效的身份证号码");
+ }
+
+ /**
+ * 测试出生日期为今天的情况,年龄应为0
+ */
+ @Test
+ public void getAge_BirthdayToday_ReturnsZero() {
+ String todayStr = "20250405";
+ String idCard = "100000" + todayStr + "1234";
+
+ try (var mockedStaticLocalDate = mockStatic(LocalDate.class);
+ var mockedStaticPeriod = mockStatic(Period.class)) {
+
+ LocalDate today = LocalDate.of(2025, 4, 5);
+ Period zeroPeriod = Period.ZERO;
+
+ mockedStaticLocalDate.when(LocalDate::now).thenReturn(today);
+ mockedStaticLocalDate.when(() -> LocalDate.parse(todayStr, DateTimeFormatter.ofPattern("yyyyMMdd"))).thenReturn(today);
+ mockedStaticPeriod.when(() -> Period.between(today, today)).thenReturn(zeroPeriod);
+
+ Integer age = userService.getAge(idCard);
+ assertEquals(0, age, "出生当天年龄应为0");
+ }
+ }
+
+ /**
+ * 参数化测试多个合法身份证号,验证年龄是否正确
+ */
+ @ParameterizedTest
+ @ValueSource(strings = {
+ "100000199001011234", // 1990-01-01
+ "100000198506152345", // 1985-06-15
+ "100000200012313456" // 2000-12-31
+ })
+ public void getAge_MultipleValidIdCards_ReturnsCorrectAges(String idCard) {
+ String birthStr = idCard.substring(6, 14);
+ try (var mockedStaticLocalDate = mockStatic(LocalDate.class);
+ var mockedStaticPeriod = mockStatic(Period.class)) {
+
+ LocalDate birthDate = LocalDate.parse(birthStr, DateTimeFormatter.ofPattern("yyyyMMdd"));
+ LocalDate currentDate = LocalDate.of(2025, 4, 5);
+ int expectedAge = Period.between(birthDate, currentDate).getYears();
+
+ mockedStaticLocalDate.when(LocalDate::now).thenReturn(currentDate);
+ mockedStaticLocalDate.when(() -> LocalDate.parse(birthStr, DateTimeFormatter.ofPattern("yyyyMMdd"))).thenReturn(birthDate);
+ mockedStaticPeriod.when(() -> Period.between(birthDate, currentDate)).thenReturn(Period.between(birthDate, currentDate));
+
+ Integer actualAge = userService.getAge(idCard);
+ assertEquals(expectedAge, actualAge, "年龄计算错误");
+ }
+ }
+
+}
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/src/test/java/com/itheima/UserServiceTest.java b/03. 后端Web基础(Maven基础)/maven-project01/src/test/java/com/itheima/UserServiceTest.java
new file mode 100644
index 0000000..5908103
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/src/test/java/com/itheima/UserServiceTest.java
@@ -0,0 +1,78 @@
+package com.itheima;
+
+import org.junit.jupiter.api.*;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
+
+/**
+ * 测试类
+ */
+@DisplayName("用户信息测试类")
+public class UserServiceTest {
+
+// @BeforeAll
+// public static void berforeAll(){
+// 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 testGenderWithAssert(){
+ UserService userService = new UserService();
+ String gender = userService.getGender("100000200010011011");
+ //断言
+ Assertions.assertEquals("男", gender, "性别获取逻辑有问题");
+ }
+
+ @Test
+ public void testGenderWithAssert1(){
+ UserService userService = new UserService();
+ //断言
+ Assertions.assertThrows(IllegalArgumentException.class, () -> {
+ userService.getGender(null);
+ });
+ }
+
+// 参数化测试
+ @DisplayName("测试用户性别")
+ @ParameterizedTest
+ @ValueSource(strings = {"100000200010011011", "100000200010011031", "100000200010011051"})
+ public void testGetGender2(String idCard) {
+ UserService userService = new UserService();
+ String gender = userService.getGender(idCard);
+
+ //断言
+ Assertions.assertEquals("男",gender);
+ }
+
+
+}
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/classes/com/itheima/HelloWorld.class b/03. 后端Web基础(Maven基础)/maven-project01/target/classes/com/itheima/HelloWorld.class
new file mode 100644
index 0000000..88cea21
Binary files /dev/null and b/03. 后端Web基础(Maven基础)/maven-project01/target/classes/com/itheima/HelloWorld.class differ
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/classes/com/itheima/UserService.class b/03. 后端Web基础(Maven基础)/maven-project01/target/classes/com/itheima/UserService.class
new file mode 100644
index 0000000..0794c75
Binary files /dev/null and b/03. 后端Web基础(Maven基础)/maven-project01/target/classes/com/itheima/UserService.class differ
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/maven-archiver/pom.properties b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..668010b
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=maven-project01
+groupId=com.itheima
+version=1.0-SNAPSHOT
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/maven-project01-1.0-SNAPSHOT.jar b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-project01-1.0-SNAPSHOT.jar
new file mode 100644
index 0000000..46046a5
Binary files /dev/null and b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-project01-1.0-SNAPSHOT.jar differ
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..66853d9
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1 @@
+com\itheima\HelloWorld.class
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..809c269
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,2 @@
+D:\web-ai-code\web-ai-project01\maven-project01\src\main\java\com\itheima\UserService.java
+D:\web-ai-code\web-ai-project01\maven-project01\src\main\java\com\itheima\HelloWorld.java
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000..e69de29
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..34cba60
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1,2 @@
+D:\web-ai-code\web-ai-project01\maven-project01\src\test\java\com\itheima\UserServiceTest.java
+D:\web-ai-code\web-ai-project01\maven-project01\src\test\java\com\itheima\UserServiceAiTest.java
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/2024-09-24T13-04-04_510.dumpstream b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/2024-09-24T13-04-04_510.dumpstream
new file mode 100644
index 0000000..6477c97
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/2024-09-24T13-04-04_510.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2024-09-24T13:04:08.547
+Boot Manifest-JAR contains absolute paths in classpath 'D:\develop\apache-maven-3.9.4\mvn_repo\org\apache\maven\surefire\surefire-api\3.1.2\surefire-api-3.1.2.jar'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/2024-09-24T13-04-26_238.dumpstream b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/2024-09-24T13-04-26_238.dumpstream
new file mode 100644
index 0000000..f6fe739
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/2024-09-24T13-04-26_238.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2024-09-24T13:04:26.662
+Boot Manifest-JAR contains absolute paths in classpath 'D:\develop\apache-maven-3.9.4\mvn_repo\org\apache\maven\surefire\surefire-api\3.1.2\surefire-api-3.1.2.jar'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/2024-09-24T13-05-06_117.dumpstream b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/2024-09-24T13-05-06_117.dumpstream
new file mode 100644
index 0000000..c0b3542
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/2024-09-24T13-05-06_117.dumpstream
@@ -0,0 +1,5 @@
+# Created at 2024-09-24T13:05:06.536
+Boot Manifest-JAR contains absolute paths in classpath 'D:\develop\apache-maven-3.9.4\mvn_repo\org\apache\maven\surefire\surefire-api\3.1.2\surefire-api-3.1.2.jar'
+Hint: -Djdk.net.URLClassPath.disableClassPathURLCheck=true
+'other' has different root
+
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/TEST-com.itheima.UserServiceAiTest.xml b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/TEST-com.itheima.UserServiceAiTest.xml
new file mode 100644
index 0000000..bc79f03
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/TEST-com.itheima.UserServiceAiTest.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/TEST-com.itheima.UserServiceTest.xml b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/TEST-com.itheima.UserServiceTest.xml
new file mode 100644
index 0000000..0cc50fc
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/TEST-com.itheima.UserServiceTest.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/com.itheima.UserServiceAiTest.txt b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/com.itheima.UserServiceAiTest.txt
new file mode 100644
index 0000000..d432e66
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/com.itheima.UserServiceAiTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.itheima.UserServiceAiTest
+-------------------------------------------------------------------------------
+Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.261 s -- in com.itheima.UserServiceAiTest
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/com.itheima.UserServiceTest.txt b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/com.itheima.UserServiceTest.txt
new file mode 100644
index 0000000..32d8a74
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project01/target/surefire-reports/com.itheima.UserServiceTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: com.itheima.UserServiceTest
+-------------------------------------------------------------------------------
+Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.067 s -- in com.itheima.UserServiceTest
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/test-classes/com/itheima/UserServiceAiTest.class b/03. 后端Web基础(Maven基础)/maven-project01/target/test-classes/com/itheima/UserServiceAiTest.class
new file mode 100644
index 0000000..567747d
Binary files /dev/null and b/03. 后端Web基础(Maven基础)/maven-project01/target/test-classes/com/itheima/UserServiceAiTest.class differ
diff --git a/03. 后端Web基础(Maven基础)/maven-project01/target/test-classes/com/itheima/UserServiceTest.class b/03. 后端Web基础(Maven基础)/maven-project01/target/test-classes/com/itheima/UserServiceTest.class
new file mode 100644
index 0000000..69e32c0
Binary files /dev/null and b/03. 后端Web基础(Maven基础)/maven-project01/target/test-classes/com/itheima/UserServiceTest.class differ
diff --git a/03. 后端Web基础(Maven基础)/maven-project02/pom.xml b/03. 后端Web基础(Maven基础)/maven-project02/pom.xml
new file mode 100644
index 0000000..a3d0c4a
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project02/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ com.itheima
+ maven-project02
+ 1.0-SNAPSHOT
+
+
+ 17
+ 17
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/maven-project02/src/main/java/com/itheima/HelloMaven.java b/03. 后端Web基础(Maven基础)/maven-project02/src/main/java/com/itheima/HelloMaven.java
new file mode 100644
index 0000000..18ad6a1
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project02/src/main/java/com/itheima/HelloMaven.java
@@ -0,0 +1,7 @@
+package com.itheima;
+
+public class HelloMaven {
+ public static void main(String[] args) {
+ System.out.println("Hello Maven....");
+ }
+}
diff --git a/03. 后端Web基础(Maven基础)/maven-project03/pom.xml b/03. 后端Web基础(Maven基础)/maven-project03/pom.xml
new file mode 100644
index 0000000..843216c
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project03/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ com.itheima
+ maven-project03
+ 1.0-SNAPSHOT
+
+
+ 17
+ 17
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/maven-project03/src/main/java/com/itheima/HelloMaven.java b/03. 后端Web基础(Maven基础)/maven-project03/src/main/java/com/itheima/HelloMaven.java
new file mode 100644
index 0000000..8236652
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/maven-project03/src/main/java/com/itheima/HelloMaven.java
@@ -0,0 +1,7 @@
+package com.itheima;
+
+public class HelloMaven {
+ public static void main(String[] args) {
+ System.out.println("Hello Maven ~~~");
+ }
+}
diff --git a/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/.gitignore b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/compiler.xml b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/compiler.xml
new file mode 100644
index 0000000..f45faae
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/compiler.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/encodings.xml b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/encodings.xml
new file mode 100644
index 0000000..65eb114
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/jarRepositories.xml b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/jarRepositories.xml
new file mode 100644
index 0000000..5a2f139
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/misc.xml b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/misc.xml
new file mode 100644
index 0000000..335d66f
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/modules.xml b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/modules.xml
new file mode 100644
index 0000000..02a9c87
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/web-ai-project01/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/web-ai-project01/maven-project01/pom.xml b/03. 后端Web基础(Maven基础)/web-ai-project01/maven-project01/pom.xml
new file mode 100644
index 0000000..8dba912
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/web-ai-project01/maven-project01/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ com.itheima
+ maven-project01
+ 1.0-SNAPSHOT
+
+
+ 17
+ 17
+ UTF-8
+
+
+
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/web-ai-project01/maven-project01/src/main/java/com/itheima/Main.java b/03. 后端Web基础(Maven基础)/web-ai-project01/maven-project01/src/main/java/com/itheima/Main.java
new file mode 100644
index 0000000..ea6b5af
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/web-ai-project01/maven-project01/src/main/java/com/itheima/Main.java
@@ -0,0 +1,7 @@
+package com.itheima;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/03. 后端Web基础(Maven基础)/web-ai-project01/maven-project01/target/classes/com/itheima/Main.class b/03. 后端Web基础(Maven基础)/web-ai-project01/maven-project01/target/classes/com/itheima/Main.class
new file mode 100644
index 0000000..2f5c535
Binary files /dev/null and b/03. 后端Web基础(Maven基础)/web-ai-project01/maven-project01/target/classes/com/itheima/Main.class differ
diff --git a/03. 后端Web基础(Maven基础)/web-ai-project01/web-ai-project01.iml b/03. 后端Web基础(Maven基础)/web-ai-project01/web-ai-project01.iml
new file mode 100644
index 0000000..9a5cfce
--- /dev/null
+++ b/03. 后端Web基础(Maven基础)/web-ai-project01/web-ai-project01.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file