zoukankan      html  css  js  c++  java
  • java培训学习路线图之SpringBoot多模块开发学习

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

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

    1、创建SpringBoot项目

    结构为:

    代码分别是:

    public class User {

    private String username;

    private String password;

    private String realname;

    ...省略getset 构造方法

    }

    @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);

    }

    }

    启动项目,测试

    多模块开发:

    随着项目越来越复杂,每个层的规模也逐渐增大,在一个模块中进行开发,会给测试和维护带来不便,对于大型项目来说,一般会将每个层放到自己的模块中,然后每个层建立联系,单独维护。

    下面我们将会把前面的单模块项目重构为多模块项目:

    项目分为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

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

    项目的pom.xml中会出现:

    <modules>

    <module>model</module>

    </modules>

    这就是模块创建完成了

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

    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模块

    添加依赖:

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

  • 相关阅读:
    day7 面向对象 静态方法 类方法 属性方法 类的特殊成员方法 元类 反射 异常处理
    day6 面向对象 封装 继承 多态 类与实例在内存中的关系 经典类和新式类
    day5 time datetime random os sys shutil json pickle shelve xml configparser hashlib subprocess logging re正则 python计算器
    kafka常用操作命令
    linux基础
    django学习1——初识web应用程序
    mysql数据库(三)——pymysql模块
    mysql数据库(二)——表的查询
    mysql数据库(一)
    Python常用模块——re模块
  • 原文地址:https://www.cnblogs.com/qf-dd/p/10281215.html
Copyright © 2011-2022 走看看