springboot多模块按什么拆分

Posted diuxie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot多模块按什么拆分相关的知识,希望对你有一定的参考价值。

在Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,常见的就是分为model(域模型层)、dao(数据库访问层)、service(业务逻辑层)、controller(控制器层)、web(表现层),这样分层之后,各个层之间的职责会比较明确,后期维护起来也相对比较容易。

  前面我们开发都是在一个模块中,把不同的层以包来区分,如下:

  1、创建SpringBoot项目

  结构为:

1

  游戏代码分别是:

  public class User {

  private String username;

  private String password;

  private String realname;

  ...省略get\\set 构造方法

  }

  @Repository

  public class UserDAO {

  public List<User> selectAllUsers(){

  return Arrays.asList(new User("zhangsan","111","张三"),

  new User("lisi","111","李四"),

  new User("wangwu","111","王五"));

  }

  }

  @Service

  public class UserService {

  @Resource

  private UserDAO userDAO;

  public List<User> findAllUsers(){

  return userDAO.selectAllUsers();

  }

  }

  @Controller

  @RequestMapping("/user")

  public class UserController {

  @Resource

  private UserService userService;

  @RequestMapping("/list")

  @ResponseBody

  public String list(){

  List<User> allUsers = userService.findAllUsers();

  StringBuilder stringBuilder = new StringBuilder();

  for(User user :allUsers){

  stringBuilder.append("<p>姓名:");

  stringBuilder.append(user.getRealname());

  stringBuilder.append("</p>");

  }

  return stringBuilder.toString();

  }

  }

  @SpringBootApplication

  public class DemoApplication {

  public static void main(String[] args) {

  SpringApplication.run(DemoApplication.class, args);

  }

  }

  启动项目,测试

0

  多模块开发:

  随着项目越来越复杂,下面我们将会把前面的单模块项目重构为多模块项目:www.sangpi.com项目分为4个模块每个层的规模也逐渐增大,在一个模块中进行开发,会给测试和维护带来不便,对于大型项目来说,一般会将每个层放到自己的模块中,然后每个层建立联系,单独维护。

  controller

  service

  dao

  model

  模块间依赖关系是

  controller依赖service和model

  service依赖dao和model

  dao依赖model

  重构多模块项目

  1、首先选择项目的pom.xml,将打包方式改为pom

  <packaging>pom</packaging>

  2、新建model模块:

  项目右键——>New——>Module——>选择maven ——> Next

2

  输入模块名称model ——> Next ——> Finish

3

  项目的pom.xml中会出现:

  <modules>

  <module>model</module>

  </modules>

  这就是模块创建完成了

  然后将原来项目中model的包整个复制到model模块的java目录下:

4

  3、新建dao模块,过程和前面类似

  新建完成后,代码会报错,因为找不到User类,原因是dao模块还没有添加model模块的依赖

  添加依赖,在dao模块的pom.xml中添加

  <dependencies>

  <dependency>

  <groupId>com.qianfeng.springboot</groupId>

  <version>0.0.1-SNAPSHOT</version>

  <artifactId>model</artifactId>

  </dependency>

  </dependencies>

  4、再添加service模块

5

  添加依赖:

  <dependencies>

  <dependency>

  <groupId>com.qianfeng.springboot</groupId>

  <artifactId>dao</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  </dependency>

  <dependency>

  <groupId>com.qianfeng.springboot</groupId>

  <artifactId>model</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  </dependency>

  </dependencies>

  5、添加controller模块

  添加依赖:

  <dependencies>

  <dependency>

  <groupId>com.qianfeng.springboot</groupId>

  <artifactId>service</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  </dependency>

  <dependency>

  <groupId>com.qianfeng.springboot</groupId>

  <artifactId>model</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  </dependency>

  </dependencies>

  然后把原来项目的DemoApplication类复制到controller模块java目录下的基础包下,本例是com.qianfeng.springboot

6

  6、点击Build Project 编译项目,然后启动程序进行测试,如果能成功启动还能看到原来的执行效果,那么项目多模块的重构就完成了。

以上是关于springboot多模块按什么拆分的主要内容,如果未能解决你的问题,请参考以下文章

springboot多模块算微服务吗

spring boot 多模块在tomcat上运行

spring boot关于多个模块(module)的配置问题

02-Maven高级-分模块开发依赖传递聚合继承(SpringBoot的部分底层原理)多模块开发(环境切换)Nexus私服搭建与使用

SpringBoot异常处理统一封装我来做-使用篇

带有 Spring Boot 的多模块 Web 应用程序 Maven 架构