在IntelliJ IDEA中搭建基于Maven的SSM整合框架

一、新建Maven项目

1、打开idea,点击File->New->Project 这时会弹出个窗口,我们创建maven项目,选择本地jdk版本,勾选复选框“Create from archetype”使用原型模版快速创建,在下拉选项中选择”webapp”,点击【Next】
这里写图片描述
2、在该面板中填写maven坐标”groupId”,”artifactId”,以及”version”,之后点击【Next】
这里写图片描述
3、在接下来面板中选择本地maven,比如我的maven选择如下,选择完成之后点击【Next】
这里写图片描述
4、弹出窗口,项目名称,项目本地地址,点击【Finish】
这里写图片描述
5、之后idea就会自动创建maven项目,选择”Enable Auto-Import”,这里maven将自动下载导入一系列maven依赖,将花费一些时间。
这里写图片描述
6、嗒哒~~ 创建好的maven web项目结构如下:
这里写图片描述
7、还需要一些文件夹我们手动创建,在main右键,New->Directory创建目录取名为java:
这里写图片描述
8、右键,将java文件夹标记为为源码文件夹:
这里写图片描述
9、同理在main目录下创建目录取名为resources,并标记为资源文件夹,这里不再上图。
10、创建与main同级的test目录,按照同样的方法在该目录下创建java测试源码文件和resources测试资源文件。
至此我们的maven web项目就建好了~
嗒哒~
这里写图片描述
另外也可在项目上右键选择选择Open Module Settings打开模块设置管理目录:
这里写图片描述

我们这样搭目录是为了符合Maven项目的规范

二、文件配置

pom.xml
项目的架子搭好了,这时我们需要引入项目所需要的jar包,而maven会依据pom.xml文件去下载相应的jar包。因此我们只要在pom.xml文件引入这些jar包的依赖配置就可以了。主要有单元测试的,日志的,spring的,mybatis相关的,数据库相关的这几类jar包,这些jar包可在maven仓库中找。
比如我们需要junit jar包:
进入maven官网去搜
这里写图片描述
这里写图片描述
这里写图片描述
粘贴到pom.xml文件中即可。
项目需要的jar包是千篇一律的,这里相关功能说明如下:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>

    <!-- 为单元测试提供类的支持 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <!-- 使用范围:测试环境 -->
      <scope>test</scope>
    </dependency>

    <!-- 日志 -->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.2.3</version>
      <!-- 使用范围:不写的情况下默认为compile,即线上环境和测试环境-->
    </dependency>

    <!-- spring -->
    <!-- spring-core 包含spring框架基本的核心工具类。spring其他组件都要使用到这个包里的类 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>5.0.6.RELEASE</version>
    </dependency>
    <!-- spring-beans 该jar文件是所有应用都用得到的,它包含访问配置文件、创建和管理bean
    以及进行IOC/DI所涉及到的基础类的支持 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>5.0.6.RELEASE</version>
    </dependency>
    <!-- spring-context 为spring核心提供了大量的扩展,包括springApplicationContext所需的类、
    instrumentation组件以及校验validation相关类-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.0.6.RELEASE</version>
    </dependency>
    <!-- spring-jdbc 包含Spring对jdbc数据访问进行的封装的所有类,为Spring访问数据提供支持 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.0.6.RELEASE</version>
    </dependency>
    <!-- spring-tx 做一些事务处理,为JDBC、Hibernate、JDO、JPA、mybatis等提供一致的声明式和编程式事务管理-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.0.6.RELEASE</version>
    </dependency>
    <!-- spring-web 包含web应用开发时spring框架所需的类-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.0.6.RELEASE</version>
    </dependency>
    <!-- spring-webmvc 包含mvc框架的所有类 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.0.6.RELEASE</version>
    </dependency>
    <!-- spring-test 测试环境用到的对Junit框架的简单封装 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.0.6.RELEASE</version>
      <scope>test</scope>
    </dependency>
    <!--  javax.servlet-api 提供servlet服务 -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.0</version>
      <scope>provided</scope>
    </dependency>
    <!-- jackson-databind 解析json -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.5</version>
    </dependency>
    <!--commons-collections MAP工具类是对标准Java collection的一个扩展  -->
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.2.2</version>
    </dependency>

    <!-- 数据访问相关 -->
    <!-- mybatis  DAO Mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>
    <!-- mybatis-spring spring与mybatis做一个衔接融合 -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.2</version>
    </dependency>

    <!-- 数据库 -->
    <!-- mysql-connector-java 支持jdbc与mysql的交互 -->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.11</version>
    </dependency>
    <!-- c3p0 连接池 -->
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>
  </dependencies>

逐层完成SSM的各项配置

  • 在src/main/resources/创建数据库配置文件:jdbc.propetites
  • 在src/main/resources/创建mybatis的配置文件:mybatis-config.xml
  • 在src/main/resources/spring/下创建spring各层配置文件:spring-dao.xml、spring-service.xml、spring-web.xml
  • 配置WEB-INF下的web.xml文件

文件配置大同小异,可按需自行网上搜索~


SpringMVC:DispatchServlet
前端控制器DispatchServlet是整个MVC框架的核心,主要要来拦截符合要求的外部请求,并把请求分发到不同的控制器中,根据控制器处理的结果,生成相应的响应发送到客户端。
Spring:IOC和AOP
IOC:由Spring来控制对象的生命周期和对象间的关系。IOC是通过DI即依赖注入来实现的。组件之间的依赖关系由容器在运行期决定,IOC动态将依赖关系动态的注入到组建件中。
AOP:面向切面编程,AOP的实现方式是动态代理。
MyBatis:ORM
ORM:关系映射,对象和数据库之间的映射,将程序中的对象自动持久化到关系数据库之中。

猜你喜欢

转载自blog.csdn.net/coder_16/article/details/80591069