Java_Maven:2. maven 构建 SSM 工程

本文详细介绍了如何使用Maven构建一个SSM(Spring、SpringMVC、Mybatis)工程,包括创建Maven项目、配置pom.xml、理解依赖传递和解决依赖冲突,以及各个层的代码和配置文件的编写。通过实例展示了依赖调解原则、排除依赖和锁定版本等方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

​​​​​​​

1 需求

2 准备数据库

3 创建一个 maven 工程

4 知识点准备

4.1 依赖传递

4.2 依赖冲突的解决

4.2.1 依赖调解原则

4.2.2 排除依赖

4.2.3 锁定版本

5 定义 pom.xml

6 Dao 层

6.1 pojo 模型类

6.2 dao 层代码

6.3 配置文件

6.4 单元测试

7 Service 层

8 Web 层

9 Jsp

10 运行与测试


  • 1 需求

    • 实现 SSM 工程构建,规范依赖管理。场景:根据 id 展示商品信息
  • 2 准备数据库

    • 导入以下语句
  • 3 创建一个 maven 工程

    • 1) 新建一个 ssm_maven 项目,使用下图选中的骨架
    • 2) 填写坐标
    • 3)  查看是否使用的自己的私服
    • 4) 在 main 目录下新建 java 和 resources 文件夹
    • 5) 把 java 和 resources 文件夹转成 source root
      • Source roots (or source folders)
        • 通过这个类指定一个文件夹,告诉IntelliJ IDEA,这个文件夹及其子文件夹中包含的源代码,可以编译为构建过程的一部分。
      • Test source roots (or test source folders; shown as rootTest)
        • 这些根类似于源根,但用于用于测试的代码(例如用于单元测试)。测试源文件夹允许您将与测试相关的代码与生产代码分开。
        • 通常,源和测试源的编译结果被放置在不同的文件夹中。
      • Resource roots     (重要:springmvc使用时,web.xml常用配置的classpath所指的位置就是这个设置后的resources包下的位置)
        • 用于应用程序中的资源文件(图像、各种配置XML和属性文件等)。在构建过程中,资源文件夹的所有内容都复制到输出文件夹中.
        • 类似于源,您可以指定生成资源。您还可以指定输出文件夹中的文件夹,您的资源应该复制到。
      • Test resource roots
        • (或测试资源文件夹;如roottestresourceij;只有在java模块)是资源文件与您的测试源有关。在所有其他方面,这些文件夹类似于资源文件夹。
      • Excluded
        • 将文件标记为Excluded目录后,idea就不会为该文件创建索引,全局搜索也不会搜里面的内容,编辑代码不会智能提示,Excluded Folders相当于代码废弃场
    • 6) 修改编译版本,在 pom.xml 文件中添加
      • <build>
         <plugins>
             <!-- 设置编译版本为 1.8 -->
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.1</version >
                 <configuration>
                     <source>1.8</source>
                     <target>1.8</target>
                     <encoding>UTF-8</encoding>
                 </configuration>
             </plugin>
         </plugins>
        </build>
  • 4 知识点准备

    • 4.1 依赖传递

      • 先添加 springmvc 的核心依赖的坐标
      • <dependencies>
         <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>4.2.4.RELEASE</version>
         </dependency>
        </dependencies>
      • 会发现出现除了 spring-webmvc 以外的其他 jar。因为我们的项目依赖 spring-webmv.jar,而spring-webmv.jar 会依赖 spring-beans.jar 等等,所以 spring-beans.jar 这些 jar 包也出现在 maven 工程中,这种现象称为依赖传递。从下图中可看到他们的关系:(请注意spring-beans 的版本)
    • 4.2 依赖冲突的解决

      • 接着添加一个依赖
      • 我们会发现这两个 jar 包同时都依赖了 spring-beans
      • 但是:
        • spring-webmvc 依赖 spirng-beans-4.2.4,
        • spring-context 依赖 spring-beans-5.0.2,
        • 发现spirng-beans-4.2.4 加入到工程中,而我们希望 spring-beans-5.0.2 加入工程。这就造成了依赖冲突。解决依赖冲突有以下原则:
        • ​​​​​​​
      • 4.2.1 依赖调解原则

        • maven 自动按照下边的原则调解:
        • 1)第一声明者优先原则
          • 在 pom 文件定义依赖,先声明的依赖为准。
          • 测试:
            • 如果将上边 spring-webmvc 和 spring-context 顺序颠倒,系统将导入 spring-beans-5.0.2。
          • 分析:
            • 由于 spring-webmvc 在前边以 spring-webmvc 依赖的 spring-beans-5.0.2 为准,所以最终
            • ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​spring-beans-5.0.2 添加到了工程中。
        • 2)路径近者优先原则
          • 例如:还是上述情况,spring-contex 和 spring-webmvc 都会传递过来 spirng-beans,那如果直接把 spring-beans 的依赖直接写到 pom 文件中,那么项目就不会再使用其他依赖传递来的 spring
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值