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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 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
                              • 建议:多搭建几遍
                              相关实践学习
                              每个IT人都想学的“Web应用上云经典架构”实战
                              本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
                              MySQL数据库入门学习
                              本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
                              相关文章
                              |
                              7月前
                              |
                              监控 安全 Java
                              Spring AOP实现原理
                              本内容主要介绍了Spring AOP的核心概念、实现机制及代理生成流程。涵盖切面(Aspect)、连接点(Join Point)、通知(Advice)、切点(Pointcut)等关键概念,解析了JDK动态代理与CGLIB代理的原理及对比,并深入探讨了通知执行链路和责任链模式的应用。同时,详细分析了AspectJ注解驱动的AOP解析过程,包括切面识别、切点表达式匹配及通知适配为Advice的机制,帮助理解Spring AOP的工作原理与实现细节。
                              1092 13
                              |
                              9月前
                              |
                              监控 安全 数据安全/隐私保护
                              如何有效防止验证码盗刷?
                              验证码盗刷是攻击者利用程序批量请求短信验证码,对用户和企业造成经济损失与骚扰的安全威胁。为更安全地完成身份验证,企业可以采用阿里云提供的防盗刷监控、号码认证及图形认证等服务。
                              759 11
                              |
                              9月前
                              |
                              测试技术 容器
                              DeepSeek-R1-Distill-Qwen-1.5B基于MindIE推理实践
                              基于MindIE实现DeepSeek-R1-Distill-Qwen-1.5B的纯模型推理和服务化推理。
                              |
                              12月前
                              |
                              人工智能 数据可视化 API
                              FastGPT 基于Higress 聚合 LLM 网关的最佳实践
                              本文介绍了Fast GPT的产品形态和设计理念,重点讨论了大模型的幻觉问题及其对应用落地的影响。Fast GPT通过结合工作流的强逻辑性和AI的理解能力,提升系统的稳定性和可靠性。文章还详细描述了Fast GPT的工作流节点、知识库管理及AI网关的功能,并展示了几个实际应用场景,如私人助手、图文生成和文档处理等。最后,探讨了如何通过引入云函数和Copilot简化代码编写,实现无代码编排的工作流解决方案,提升用户体验。
                              |
                              存储 关系型数据库 MySQL
                              19. Mysql 循环语句
                              19. Mysql 循环语句
                              385 1
                              |
                              运维 Linux 应用服务中间件
                              Linux的完全本地仓库搭建指南(科普扫盲贴)
                              Linux的完全本地仓库搭建指南(科普扫盲贴)
                              1062 0
                              Linux的完全本地仓库搭建指南(科普扫盲贴)
                              |
                              JavaScript
                              使用ElementPlus实现内嵌表格和内嵌分页
                              使用ElementPlus实现内嵌表格和内嵌分页的Vue组件示例。
                              482 0
                              使用ElementPlus实现内嵌表格和内嵌分页
                              |
                              Kubernetes 负载均衡 网络协议
                              k8s学习--负载均衡器matelLB的详细解释与安装
                              k8s学习--负载均衡器matelLB的详细解释与安装
                              1041 0
                              |
                              Ubuntu
                              修改虚拟机Ubuntu为桥接模式的静态IP
                              修改虚拟机Ubuntu为桥接模式的静态IP
                              946 0
                              |
                              存储 缓存 固态存储
                              SSD掉电保护也是一门艺术
                              当你正在文思泉涌地敲打键盘赶稿件时,电脑突然抽风,然后,你就看到了绝望的蓝色(系统崩溃,电脑蓝屏了)。 其实office软件有自动保存的功能,当电脑重启,再次打开WORD文件时,会提醒你要不要导入最后自动保存的内容(这个方法不是100%管用)。

                              热门文章

                              最新文章