如何在IntelliJ中为Spring Boot项目添加依赖库并实现分层架构
嘿,作为Spring Boot新手能想到搭建分层架构还拆分依赖库,这个思路真的很棒!我来一步步带你在IntelliJ里完成整个流程:
第一步:创建多模块项目(Maven为例)
咱们要把数据层、服务层做成独立的依赖库,再搭配Rest API主项目,所以用多模块结构最方便:
- 打开IntelliJ,选「New Project」,选Maven,不要勾选「Create from archetype」,输入GroupId(比如
com.example)、ArtifactId(比如spring-boot-layered-parent),点击Finish创建父项目。 - 右键父项目 → 「New」→ 「Module」,分别创建3个子模块:
data-layer:数据层依赖库service-layer:服务层依赖库api-rest:Rest API主项目
第二步:配置各层职责与依赖
每个模块各司其职,咱们逐个配置:
数据层(data-layer)
这层专门负责和数据库交互,比如定义实体类、写数据访问接口:
- 配置pom.xml,添加必要依赖:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> </dependencies>
- 代码结构建议:
com.example.data.entity:放数据库实体类(比如User.java,用@Entity和Lombok的@Data注解)com.example.data.repository:放Spring Data JPA的Repository接口(比如UserRepository.java,继承JpaRepository)
服务层(service-layer)
这层是业务逻辑的核心,调用数据层完成业务处理:
- 配置pom.xml,依赖数据层模块:
<dependencies> <dependency> <groupId>com.example</groupId> <artifactId>data-layer</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies>
- 代码结构建议:
com.example.service:放服务接口(比如UserService.java,定义业务方法)com.example.service.impl:放接口实现类(比如UserServiceImpl.java,注入UserRepository实现业务逻辑)
Rest API主项目(api-rest)
这层对外提供Rest接口,同时处理邮件这类应用服务,调用服务层完成业务:
- 配置pom.xml,依赖服务层模块,加上Web和邮件相关依赖:
<dependencies> <dependency> <groupId>com.example</groupId> <artifactId>service-layer</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
- 代码结构建议:
com.example.api.controller:放Rest控制器(比如UserController.java,注入UserService,写接口方法)com.example.api.app:放应用服务类(比如EmailService.java,用Spring的邮件API处理发送逻辑)- 主启动类:
com.example.api.Application.java,加上@SpringBootApplication(scanBasePackages = "com.example"),确保Spring能扫描到所有层的组件
第三步:IntelliJ里的关键操作与验证
- 刷新依赖:点击右侧边栏的Maven按钮,选择「Reload All Maven Projects」,确保所有模块的依赖都能正确引入
- 配置数据库:在
api-rest的src/main/resources/application.properties里添加数据库连接信息:
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name spring.datasource.username=your_db_username spring.datasource.password=your_db_password spring.jpa.hibernate.ddl-auto=update
- 启动测试:找到主启动类
Application.java,右键「Run」,启动后用Postman或浏览器访问接口(比如http://localhost:8080/users),验证分层调用是否正常
额外小Tips
- 记得在IntelliJ里安装Lombok插件(Settings → Plugins → 搜索Lombok),不然实体类的
@Data等注解会报错 - 各层的包名尽量统一前缀(比如
com.example),这样Spring的组件扫描更省心 - 如果用Gradle,步骤类似,只是把pom.xml换成build.gradle,依赖配置语法稍作调整
内容的提问来源于stack exchange,提问作者San Jaisy
相关产品推荐
相关产品推荐

