公司中最常用的模块化开发,学会就先人一步了

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 1.Maven模块1.1步骤1.2版本11.2.1父项目1.2.2子项目:通用项目1.2.3子项目:domain1.2.4maven添加依赖1.2.5子项目:dao1.2.6子项目: service 1.2.7子...

1.Maven模块

       1.1步骤

    • maven分模块开发:方便项目后期维护等操作。
    • 拆分原则:按照分层拆分。
    • 操作:
      • 步骤1:创建父项目:day0307-parent
        • 版本1:拷贝坐标
        • 版本2:锁定坐标
          • 步骤2:创建子项目:
            • 通用项目: day0307-common (工具类等)
            • domain项目:day0307-domain (JavaBean)
            • dao项目: day0307-dao (数据访问层项目)
            • service项目:day0307-service (业务逻辑层层项目)
            • web项目: day0307-web (表示层项目)
              • 版本1:直接使用,可以继承父项目的坐标
              • 版本2:按需引入,必须要再次声明坐标
                  • 步骤3:拷贝代码(班级管理)

                           1.2版本1

                                   1.2.1父项目

                    创建项目

                    image.gif编辑

                    拷贝坐标

                    <!-- 1 确定spring boot的版本-->
                        <parent>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-starter-parent</artifactId>
                            <version>2.2.5.RELEASE</version>
                        </parent>
                        <!--2  确定版本-->
                        <properties>
                            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
                            <java.version>1.8</java.version>
                            <spring-cloud-release.version>Hoxton.SR3</spring-cloud-release.version>
                            <nacos.version>1.1.0</nacos.version>
                            <alibaba.cloud.version>2.2.1.RELEASE</alibaba.cloud.version>
                            <mybatis.starter.version>1.3.2</mybatis.starter.version>
                            <mapper.starter.version>2.0.2</mapper.starter.version>
                            <pageHelper.starter.version>1.2.5</pageHelper.starter.version>
                            <mysql.version>5.1.32</mysql.version>
                            <durid.starter.version>1.1.10</durid.starter.version>
                            <mybatis.plus.version>3.4.0</mybatis.plus.version>
                            <swagger.version>2.7.0</swagger.version>
                            <jwt.jjwt.version>0.9.0</jwt.jjwt.version>
                            <jwt.joda.version>2.9.7</jwt.joda.version>
                            <beanutils.version>1.9.3</beanutils.version>
                        </properties>
                        <!-- 3  添加依赖 -->
                        <dependencies>
                            <!--web开发启动器-->
                            <dependency>
                                <groupId>org.springframework.boot</groupId>
                                <artifactId>spring-boot-starter-web</artifactId>
                            </dependency>
                            <!--测试启动器-->
                            <dependency>
                                <groupId>org.springframework.boot</groupId>
                                <artifactId>spring-boot-starter-test</artifactId>
                            </dependency>
                            <!-- mybatis启动器 -->
                            <dependency>
                                <groupId>org.mybatis.spring.boot</groupId>
                                <artifactId>mybatis-spring-boot-starter</artifactId>
                                <version>${mybatis.starter.version}</version>
                            </dependency>
                            <!-- 通用Mapper启动器 -->
                            <dependency>
                                <groupId>tk.mybatis</groupId>
                                <artifactId>mapper-spring-boot-starter</artifactId>
                                <version>${mapper.starter.version}</version>
                            </dependency>
                            <!-- 分页助手启动器 -->
                            <dependency>
                                <groupId>com.github.pagehelper</groupId>
                                <artifactId>pagehelper-spring-boot-starter</artifactId>
                                <version>${pageHelper.starter.version}</version>
                            </dependency>
                            <!-- mysql驱动 -->
                            <dependency>
                                <groupId>mysql</groupId>
                                <artifactId>mysql-connector-java</artifactId>
                                <version>${mysql.version}</version>
                            </dependency>
                            <!-- Druid连接池 -->
                            <dependency>
                                <groupId>com.alibaba</groupId>
                                <artifactId>druid-spring-boot-starter</artifactId>
                                <version>${durid.starter.version}</version>
                            </dependency>
                            <!--swagger2-->
                            <dependency>
                                <groupId>io.springfox</groupId>
                                <artifactId>springfox-swagger2</artifactId>
                                <version>${swagger.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>io.springfox</groupId>
                                <artifactId>springfox-swagger-ui</artifactId>
                                <version>${swagger.version}</version>
                            </dependency>
                            <!--lombok-->
                            <dependency>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                            </dependency>
                            <!--common工具-->
                            <dependency>
                                <groupId>org.apache.commons</groupId>
                                <artifactId>commons-lang3</artifactId>
                                <version>3.11</version>
                            </dependency>
                        </dependencies>

                    image.gif

                                   1.2.2子项目:通用项目

                                   1.2.3子项目:domain

                    创建项目

                    image.gif编辑

                    修改坐标:添加common项目的坐标

                    image.gif编辑

                    <dependencies>
                            <dependency>
                                <groupId>com.czxy</groupId>
                                <artifactId>day0307-common</artifactId>
                                <version>1.0-SNAPSHOT</version>
                            </dependency>
                        </dependencies>

                    image.gif

                                   1.2.4maven添加依赖

                    步骤1:在pom.xml文件中右键,点击“Generate”

                    image.gif编辑

                    步骤2:在新的弹出框中,点击Dependency

                    image.gif编辑

                    步骤3:搜索 包名:项目名

                    image.gif编辑

                                   1.2.5子项目:dao

                    创建项目

                    image.gif编辑

                    添加坐标

                    image.gif编辑

                    <dependencies>
                            <dependency>
                                <groupId>com.czxy</groupId>
                                <artifactId>day0307-domain</artifactId>
                                <version>1.0-SNAPSHOT</version>
                            </dependency>
                        </dependencies>

                    image.gif

                                   1.2.6子项目:  service

                    创建项目:

                    image.gif编辑

                    添加坐标

                    image.gif编辑

                    <dependencies>
                            <dependency>
                                <groupId>com.czxy</groupId>
                                <artifactId>day0307-dao</artifactId>
                                <version>1.0-SNAPSHOT</version>
                            </dependency>
                        </dependencies>

                    image.gif

                                   1.2.7子项目:web

                    创建项目:

                    image.gif编辑

                    坐标

                    image.gif编辑

                                   1.2.8验证

                    image.gif编辑

                                   1.2.9拷贝代码

                    image.gif编辑

                    image.gif编辑

                    image.gif编辑

                    image.gif编辑

                                   1.2.10总结

                      • maven核心:pom.xml 、 src
                      • 父项目:打包方式pom、模块配置
                      • image.gif编辑
                        子项目:
                      • image.gif编辑  

                             1.3版本2:按需导入

                                     1.3.1父项目

                      父项目:依赖锁定,进行版本的确定。

                      image.gif编辑

                      <!-- 3 依赖锁定 -->
                       <!-- 3 依赖锁定 -->
                          <dependencyManagement>
                              <dependencies>
                                  <!--web开发启动器
                                  <dependency>
                                      <groupId>org.springframework.boot</groupId>
                                      <artifactId>spring-boot-starter-web</artifactId>
                                  </dependency>
                                  -->
                                  <!-- mybatis启动器 -->
                                  <dependency>
                                      <groupId>org.mybatis.spring.boot</groupId>
                                      <artifactId>mybatis-spring-boot-starter</artifactId>
                                      <version>${mybatis.starter.version}</version>
                                  </dependency>
                                  <!-- 通用Mapper启动器 -->
                                  <dependency>
                                      <groupId>tk.mybatis</groupId>
                                      <artifactId>mapper-spring-boot-starter</artifactId>
                                      <version>${mapper.starter.version}</version>
                                  </dependency>
                                  <dependency>
                                      <groupId>javax.persistence</groupId>
                                      <artifactId>persistence-api</artifactId>
                                      <version>1.0</version>
                                  </dependency>
                                  <!-- 分页助手启动器 -->
                                  <dependency>
                                      <groupId>com.github.pagehelper</groupId>
                                      <artifactId>pagehelper-spring-boot-starter</artifactId>
                                      <version>${pageHelper.starter.version}</version>
                                  </dependency>
                                  <!-- mysql驱动 -->
                                  <dependency>
                                      <groupId>mysql</groupId>
                                      <artifactId>mysql-connector-java</artifactId>
                                      <version>${mysql.version}</version>
                                  </dependency>
                                  <!-- Druid连接池 -->
                                  <dependency>
                                      <groupId>com.alibaba</groupId>
                                      <artifactId>druid-spring-boot-starter</artifactId>
                                      <version>${durid.starter.version}</version>
                                  </dependency>
                                  <!--swagger2-->
                                  <dependency>
                                      <groupId>io.springfox</groupId>
                                      <artifactId>springfox-swagger2</artifactId>
                                      <version>${swagger.version}</version>
                                  </dependency>
                                  <dependency>
                                      <groupId>io.springfox</groupId>
                                      <artifactId>springfox-swagger-ui</artifactId>
                                      <version>${swagger.version}</version>
                                  </dependency>
                                  <!--common工具-->
                                  <dependency>
                                      <groupId>org.apache.commons</groupId>
                                      <artifactId>commons-lang3</artifactId>
                                      <version>3.11</version>
                                  </dependency>
                                  <!--  自定义项目  -->
                                  <dependency>
                                      <groupId>com.czxy</groupId>
                                      <artifactId>day0307-common</artifactId>
                                      <version>1.0-SNAPSHOT</version>
                                  </dependency>
                                  <dependency>
                                      <groupId>com.czxy</groupId>
                                      <artifactId>day0307-domain2</artifactId>
                                      <version>1.0-SNAPSHOT</version>
                                  </dependency>
                                  <dependency>
                                      <groupId>com.czxy</groupId>
                                      <artifactId>day0307-dao</artifactId>
                                      <version>1.0-SNAPSHOT</version>
                                  </dependency>
                                  <dependency>
                                      <groupId>com.czxy</groupId>
                                      <artifactId>day0307-service</artifactId>
                                      <version>1.0-SNAPSHOT</version>
                                  </dependency>
                              </dependencies>
                          </dependencyManagement>

                      image.gif

                                     1.3.2domain 项目

                      domain子项目:根据需要导入对应的坐标

                             domain的pom.xml文件中添加

                      <dependencies>
                              <!-- lombok:@Data  -->
                              <dependency>
                                  <groupId>org.projectlombok</groupId>
                                  <artifactId>lombok</artifactId>
                              </dependency>
                              <!-- jpa: @Table、@Id等 -->
                              <dependency>
                                  <groupId>javax.persistence</groupId>
                                  <artifactId>persistence-api</artifactId>
                              </dependency>
                              <!-- json格式化:@JsonFormat -->
                              <dependency>
                                  <groupId>com.fasterxml.jackson.core</groupId>
                                  <artifactId>jackson-annotations</artifactId>
                              </dependency>
                              <!-- 自定义项目 -->
                              <dependency>
                                  <groupId>com.czxy</groupId>
                                  <artifactId>day0307-common</artifactId>
                              </dependency>
                          </dependencies>

                      image.gif

                                     1.3.3dao项目

                        • 修改dao的pom文件添加坐标
                        <dependencies>
                                <!-- 数据库相关的所有   -->
                                <!-- mybatis 启动器 -->
                                <dependency>
                                    <groupId>org.mybatis.spring.boot</groupId>
                                    <artifactId>mybatis-spring-boot-starter</artifactId>
                                </dependency>
                                <!-- 通用Mapper启动器 -->
                                <dependency>
                                    <groupId>tk.mybatis</groupId>
                                    <artifactId>mapper-spring-boot-starter</artifactId>
                                </dependency>
                                <!-- 分页助手启动器 -->
                                <dependency>
                                    <groupId>com.github.pagehelper</groupId>
                                    <artifactId>pagehelper-spring-boot-starter</artifactId>
                                </dependency>
                                <!-- mysql驱动 -->
                                <dependency>
                                    <groupId>mysql</groupId>
                                    <artifactId>mysql-connector-java</artifactId>
                                </dependency>
                                <!-- Druid连接池 -->
                                <dependency>
                                    <groupId>com.alibaba</groupId>
                                    <artifactId>druid-spring-boot-starter</artifactId>
                                </dependency>
                                <!-- 自定义项目 -->
                                <dependency>
                                    <groupId>com.czxy</groupId>
                                    <artifactId>day0307-domain2</artifactId>
                                </dependency>
                            </dependencies>
                        • image.gif

                                       1.3.4service项目

                        <dependencies>
                                <!--common工具-->
                                <dependency>
                                    <groupId>org.apache.commons</groupId>
                                    <artifactId>commons-lang3</artifactId>
                                </dependency>
                                <!-- 自定义项目 -->
                                <dependency>
                                    <groupId>com.czxy</groupId>
                                    <artifactId>day0307-dao</artifactId>
                                </dependency>
                            </dependencies>

                        image.gif

                                       1.3.5web项目

                        <dependencies>
                                <!--web开发启动器-->
                                <dependency>
                                    <groupId>org.springframework.boot</groupId>
                                    <artifactId>spring-boot-starter-web</artifactId>
                                </dependency>
                                <!--swagger2-->
                                <dependency>
                                    <groupId>io.springfox</groupId>
                                    <artifactId>springfox-swagger2</artifactId>
                                </dependency>
                                <dependency>
                                    <groupId>io.springfox</groupId>
                                    <artifactId>springfox-swagger-ui</artifactId>
                                </dependency>
                                <!-- 自定义项目 -->
                                <dependency>
                                    <groupId>com.czxy</groupId>
                                    <artifactId>day0307-service</artifactId>
                                </dependency>
                            </dependencies>

                        image.gif

                               1.4总结

                          • maven多模块,就是一个环境搭建。
                            • 核心:配置pom
                              • 建议:多搭建几遍
                              相关实践学习
                              如何在云端创建MySQL数据库
                              开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
                              全面了解阿里云能为你做什么
                              阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
                              相关文章
                              |
                              5月前
                              |
                              JavaScript 前端开发
                              必知的技术知识:esm前端模块化
                              必知的技术知识:esm前端模块化
                              127 0
                              |
                              6月前
                              |
                              前端开发 JavaScript 安全
                              前端模块化发展
                              前端模块化发展
                              |
                              安全 区块链 UED
                              链游开发公司 dapp软件系统开发
                              链游系统开发公司链游系统开发公司是指在区块链技术的基础上,专门从事链游系统开发的企业。链游是一种基于区块链技术的游戏形式,它具有去中心化、不可篡改、安全可信等特点,深受广大玩家的喜爱。随着链游的不断发展,链游系统开发公司也得到了越来越多的关注和认可。
                              |
                              前端开发 小程序 测试技术
                              「前端经验总结」大型项目如何稳健的进行开发
                              前端日常业务开发中,会遇到项目评估排期不准、中后期开发时间不足、遗漏功能点、项目延期等问题。本篇以笔者的实际经验,精细化区分不同场景,并给出了解决方案。
                              343 1
                              |
                              前端开发 API 对象存储
                              为 React 项目工作四年后,我理解了企业开源的真谛
                                对企业而言,发布和维护开源项目都是需要耗费大量心力的。在为 React 工作四年后我对此深有体会。我最开始只是一名外部贡献者,加入 React 团队后,又从工程师做起,最终升为团队管理。和大多数的 Facebook 开源项目一样,React 起初只是为内部使用而开发的,见识到它在简化 UI 代码的开发和维护上的作用后,我们决定将它与全世界分享。   事实证明,React 是 Facebook 的一次令人难以置信的成功,而这成功背后也隐藏了巨大的挑战。举例来说,尽管 React 非常受欢迎,但它仍处于一个竞争激烈的领域,这使得我们在开发新版本时需要小心再小心。
                              146 0
                              |
                              Web App开发 iOS开发
                              九大Web设计开发的iPad应用程序
                              导读:时尚的外观,丰富的应用,轻巧便携,iPad令许多人为之着迷。如何充分利用iPad为您的工作助力? 这里就有9款实用的Web设计和开发iPad应用程序介绍给您!当然在iPad上做设计未必能与在您的电脑上一样强大,但胜在方便灵活,适合经常出外办公和需要时刻记录设计灵感的人士。
                              1403 0
                              |
                              JavaScript 前端开发 缓存
                              前端模块化开发解决方案详解
                              一、模块化开发方案 前端发展到今天,已经有不少模块化的方案,比如 CommonJS(常用在服务器端,同步的,如nodejs) AMD(常用在浏览器端,异步的,如requirejs)(Asynchronous Module Definition) CMD(常用在浏览器端,异步的,如seajs) UMD(AMD&& CommonJS) 这些模块化规范的核心价值都是让 JavaScript 的模块化开发变得简单和自然。
                              1445 0
                              |
                              前端开发 JavaScript API
                              [译] Airbnb 的前端重构
                              本文讲的是[译] Airbnb 的前端重构,最近,我们重新思考了 Airbnb 代码库中 JavaScript 部分的架构。本文将讨论:(1)催生一些变化的产品驱动因素,(2)我们如何一步步摆脱遗留的 Rails 解决方案
                              1551 0