本文将正式开始我们项目的创建,由于最近接触的项目是多模块项目,所以打算学习使用一下,项目就以多模块架构搭建了,可以有更好的代码组织结构,这样写项目也便于由单体项目演变成springcloud架构,以后有需求的话就再尝试尝试爆改springcloud项目。OK,准备动手OAO!!!!
目录
pom.xml(PersonalKnowledgeBaseBlog)
项目采用多模块架构搭建
父模块统一管理依赖,admin模块和外界交互,system模块业务逻辑处理
我们要知道我们在干什么,我们在搭建架构,也就是让我们项目有一个基础框架,让我们后续代码有组织有纪律,整整齐齐,哪里起什么作用一目了然,完成本文章后我们就拥有管理者(父模块),外交官(admin模块),还有员工(system模块)组成的一个小项目,再详细一点,就是父类管理统一的依赖(pom文件),admin模块管理Controller层和启动类,system模块就是Service层,Dao层之类的具体的代码逻辑实现。
第一步,创建父模块
打开IDEA-新建-项目,第一次创建的是我们的父模块,用于统一管理

下一步

创建好后是这样的

把用不上的文件删除

第二步,创建子模块
父模块创建好后继续创建子模块

创建admin模块

啥都不选直接创建


创建system模块

和admin一样直接创建
把不要的部分删除

第三步,修改pom文件
然后就是修改pom文件,现在总共有三个pom文件,后续我们会继续加模块,但是pom文件的类型就是三类,父类,入口类,其他类按顺序对应着我们的父类pom文件,admin模块pom文件,system模块pom文件,所以说之后我们创建的模块都按照system模块的pom文件的格式来创建
1、父类pom文件加上

pom全部内容
pom.xml(PersonalKnowledgeBaseBlog)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.5.7</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.lzm</groupId>
<artifactId>PersonalKnowledgeBaseBlog</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>PersonalKnowledgeBaseBlog</name>
<description>PersonalKnowledgeBaseBlog</description>
<!--修改父项目的打包方式为pom-->
<packaging>pom</packaging>
<!--添加子模块到父项目-->
<modules>
<module>blog-system</module>
<module>blog-admin</module>
</modules>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
2、admin的pom文件

将上述替换成下述(意思是告诉项目我的父类到底是谁)

然后增加(意思是我是启动类)

因为admin的controller层需要用到system的service层和domain层,所以要加上(他我有用,收入麾下)

pom全部内容
pom.xml(blog-admin)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--引入父项目 替换掉之前的springboot父项目(spring-boot-starter-parent)-->
<parent>
<groupId>com.lzm</groupId>
<artifactId>PersonalKnowledgeBaseBlog</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.lzm</groupId>
<artifactId>blog-admin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>blog-admin</name>
<description>blog-admin</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.lzm</groupId>
<artifactId>blog-system</artifactId>
<version>0.0.1-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
<!--定义启动类和打包布局-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.lzm.blogadmin.BlogAdminApplication</mainClass>
<layout>JAR</layout>
</configuration>
</plugin>
</plugins>
</build>
</project>
3、system的pom文件

和admin一样上述改下述就行

因为system暂时没有使用其他模块内容,所以就这样就行(因为我手下没有人了,我现在只是一个小弟)
pom全部内容
pom.xml(blog-system)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.lzm</groupId>
<artifactId>PersonalKnowledgeBaseBlog</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.lzm</groupId>
<artifactId>blog-system</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>blog-system</name>
<description>blog-system</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
第四步,创建测试类
然后就是写一些测试类来看看我们的项目是否搭建成功

创建好这样的结构,后续我们的业务逻辑就写在这些结构里面
再创建测试类,注意接口和类的区别
TesController
package com.lzm.blogadmin.web.controller;
import com.lzm.blogsystem.service.TestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/test")
public class TestController {
@Autowired
private TestService testService;
@GetMapping("/test1")
public String test1(){
return testService.test1();
}
}
TestService
package com.lzm.blogsystem.service;
public interface TestService {
String test1();
}
TestServiceImpl
package com.lzm.blogsystem.service.impl;
import com.lzm.blogsystem.service.TestService;
import org.springframework.stereotype.Service;
@Service
public class TestServiceImpl implements TestService {
@Override
public String test1() {
return "test1";
}
}
第五步、让项目启动时扫描包
还得记得我们要再启动类里面加上@ComponentScan注解,这样启动类才能扫描到所有的包
@ComponentScan(basePackages = {"com.lzm.blogadmin", "com.lzm.blogsystem"})
要不然会报错
原因就是项目启动时没有扫描到我们的blogsystem包
启动项目

看到这个就说明项目正常运行(如果报错了,可以把报错给AI看看是哪一步出了问题,可以直接让Trae智能体打开项目,他会从你的实际项目中找出问题并修改)
第六步、测试接口
然后找一个可以测试接口的工具,(postman、Apifox什么的都行)

得到了我们的返回值
这样就说明我们的springboot的多模块项目的基础框架就搭建好了,很明显我们的数据库还没用上,所以下一篇文章就是接入我们的数据库啦,一步一个脚印,让我把坑都给他踩平!

4057

被折叠的 条评论
为什么被折叠?



