SSM框架——(SpringMVC+Spring+MyBatis+Maven多模块)整合

SpringMVC + Spring + MyBatis + Maven多模块

  • SpringMVC + Spring + MyBatis
  • Maven多模块

什么是SSM框架?

SpringMVC:
1.客户端发送请求到DispacherServlet(分发器)
2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller
3.Controller调用业务逻辑处理后,返回ModelAndView
4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图
5.视图负责将结果显示到客户端

来源于网络

Spring:
1.Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器架构,IOC容器包含并管理应用对象的配置和生命周期,你可以配置你的每个bean如何被创建,也可以配置每个bean是只有一个实例,还是每次需要时都生成一个新的实例,以及它们是如何相互关联的
2.IOC思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,这可以带来很多好处。第一,资源集中管理,实现资源的可配置和易管理。第二,降低了使用资源双方的依赖程度,也就是我们说的耦合度
3.容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能

MyBatis:
1.MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录
2.MyBatis的操作都是围绕一个sqlSessionFactory实例展开的。MyBatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令

为什么使用Maven多模块?

JavaEE项目开发中为了便于后期的维护,一般会进行分层开发,分层之后,各个层之间的职责会比较明确,后期维护起来也相对比较容易

项目结构

.
└── ssm-parent
	├── pom.xml # 父POM
	├── ssm-common # 工具类
	│   ├── pom.xml # 引入常用工具依赖
	│   └── src
	│       └── main
	│           └── java
	│               └── com # 具体代码
	├── ssm-dao # 数据库访问层
	│   ├── pom.xml # 描述工程资源的目录,编译打包 mapper.xml
	│   └── src
	│       └── main
	│           └── java
	│               └── com # 具体代码
	├── ssm-domain # 域模型层
	│   ├── pom.xml
	│   └── src
	│       └── main
	│           └── java
	│               └── com # 具体代码
	├── ssm-service # 业务逻辑层
	│   ├── pom.xml # 引入Spring、JDBC依赖
	│   └── src
	│       └── main
	│           ├── java
	│           │   └── com # 具体代码
	│           └── resources
	│               └── applicationContext-service.xml # 扫描注解配置
	└── ssm-web # 表现层
	    ├── pom.xml # 定义一些常量 [jdk version]
	    └── src
	        └── main
	            ├── java
	            │   └── com
	            ├── resources
	            │   ├── applicationContext-aop.xml # 事务配置文件
	            │   ├── applicationContext.properties # 配置文件
	            │   ├── applicationContext-thread.xml # 线程池配置文件
	            │   ├── applicationContext-web.xml # Spring跳转相关配置文件
	            │   ├── applicationContext.xml # Spring配置文件
	            │   ├── dataSource.xml # 连接池数据源配置文件
	            │   ├── log4j.properties # 日志配置文件
	            │   └── mybatis-config.xml # Mybatis配置文件
	            └── webapp # Web静态资源文件
	                ├── index.jsp
	                ├── js
	                ├── view
	                └── WEB-INF # Web应用程序配置文件

创建Maven多模块项目

一、创建ssm-parent项目

创建 ssm-parent,用来给各个子模块继承

使用 cmd 或者 Terminal,进入命令行,输入以下命令:

mvn archetype:generate -DgroupId=com.ryan -DartifactId=ssm-parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

命令执行完成之后可以看到在当前目录生成了ssm-parent目录,里面有一个src目录和一个 pom.xml文件,如下图所示:

.
└── ssm-parent
    ├── pom.xml
    └── src

src文件夹删除,然后修改pom.xml文件,将<packaging>jar</packaging>修改为<packaging>pom</packaging>pom表示它是一个被继承的模块,修改后的内容如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.ryan</groupId>
  <artifactId>ssm-parent</artifactId>
  <packaging>pom</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ssm-parent</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

注:

  • archetype:maven工程的模板工具包
  • mvn archetype:generate:创建项目(在maven 3.02以下的版本,使用archetype:create 命令创建)
  • DgroupId:组织ID
  • DartifactId:项目ID
  • DarchetypeArtifactId:工程类型
  • DinteractiveMode:是否已交互模式进行,如果是false的话就会采用默认设置建立项目

二、创建ssm-domain模块

命令行进入创建好的ssm-parent目录,然后执行下列命令:

mvn archetype:generate -DgroupId=com.ryan -DartifactId=ssm-domain -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

命令执行完成之后可以看到在ssm-parent目录中生成了ssm-domain,里面包含src目录和pom.xml文件。如下图所示:

ssm-domain
├── pom.xml
└── src

修改ssm-domain目录中的pom.xml文件,把<groupId>com.ryan</groupId><version>1.0-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,因为groupIdversion会继承ssm-parent中的groupIdversionpackaging设置打包方式为jar,修改过后的pom.xml文件如下:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.ryan</groupId>
    <artifactId>ssm-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>ssm-domain</artifactId>
  <packaging>jar</packaging>
  <name>ssm-domain</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

三、创建ssm-common模块

命令行进入创建好的ssm-parent目录,然后执行下列命令:

mvn archetype:generate -DgroupId=com.ryan -DartifactId=ssm-common -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

修改ssm-common目录中的pom.xml文件,把<groupId>com.ryan</groupId><version>1.0-SNAPSHOT</version>去掉,加上<packaging>jar</packaging>,因为groupIdversion会继承ssm-parent中的groupIdversionpackaging设置打包方式为jar,修改后的内容如下:

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.ryan</groupId>
    <artifactId>ssm-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>ssm-common</artifactId>
  <packaging>jar</packaging>
  <name>ssm-common</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值