SSM项目

(Spring + SpringMVC + Mybatis)

使用到的技术栈:

spring,springMVC,mybatis,jQuery,ajax,bootstrap(前端框架),mysql数据库,基于maven创建工程

 

项目选型:

商品管理系统:

商品表:

品牌表:

类别表:

 

需求:

SSM项目整合的时候会出现的问题:

 

1、我们都知道,mybatis框架中,持久层实现类是通过代理创建出来的,那如何将持久层的实例装进spring中?

 

我们在ssm项目整合的时候会去导入一个spring整合mybatis的包,这个包有一个扫描器设置,该扫描器会去扫描持久层所有的接口,并为该接口创建代理对象,然后将该实例装进spring中

maven坐标

 

由于导入了mybatis整合spring的包,以及数据库连接池的包,mybatis的配置文件可以不配置

 

我们将spring和springMVC的配置文件给拆分开来,因此我们要在web.xml中为spring核心容器与springMVC另作配置

注意:在spring核心配置文件和MVC配置文件中都要开启扫描包

 

基础配置

web.xml

 

beans.xml

 

 

springmvc.xml

 

数据源

 

 

详细配置过程(Model)

 

1、首先在pom.xml文件中引入maven坐标,见上文

刷新pom.xml文件,让maven导入配置

为工程添加web项目支持

 

2、创建包结构

2.1、在java文件下创建包结构

2.2在resource文件下创建文件夹,创建映射配置文件

com/os467/ssm/mapper/UserMapper.xml

 

2.3在resource文件夹下创建数据源文件db.properties,加入数据源信息,见上文

 

3、在resource文件夹下创建spring核心配置文件 beans.xml,配置核心配置文件

 

3.1、引入核心配置文件所对应的xml约束

3.2、加入开启扫描包标签,指定需要被扫描的包路径

3.3、读取数据源配置文件中的数据,获取数据源信息,能够在本配置文件中用el表达式取到值

 

配置数据源信息,我们使用dbcp连接池提供的BasicDataSource类来创建数据源实例,通过池的思想来创建持久层实例

3.4、配置mybatis所需要的会话工厂,工厂实例装载进spring容器中,选用mybatis.spring包下的SqlSessionFactoryBean类创建会话工厂

 

需要提供之前配置的数据源实例

然后需要提供映射文件的配置路径

 

3.5、mybatis扫描器的配置,引入MapperScannerConfigurer

添加属性,配置需要被代理的持久层接口的包路径

 

4、在resource文件夹下创建mvc框架配置文件 springmvc.xml

 

4.1、引入xml约束

 

4.2、开启扫描包

 

4.3、添加标签开启springmvc对注解的支持,过滤前端传来的静态资源

 

4.4、配置视图解析器,引入类InternalResourceViewResolver

配置视图前缀,jsp文件路径,配置视图后缀,文件格式

 

5、配置web.xml文件

 

5.1、配置前端总控制器,引入类DispatcherServlet,绑定springMVC核心配置文件,配置初始化属性数据,设置启动级别

拦截前端请求资源

 

5.2、设置全局属性,绑定spring核心配置文件,同时配置一个监听器ContextLoaderListener,让项目在启动的时候就去加载核心容器

 

5.3、配置一个编码过滤器,将所有资源的字符集改成utf-8,同时拦所有资源,对静态资源也生效

 

6、配置UserMapper.xml文件

引入mybatis相关xml约束,注册命名空间,编写测试sql语句

 

7、完善三层架构配置

持久层UserMapper

业务层实现类UserServiceImpl

表现层UserController

 

 

分页功能

select * from ssm_goods limit 0,3

分页需要的参数:

 

如果需要给持久层传递多个不同数据,我们选择将数据先封装到集合中

 

 

GoodsMapper

 

前端

 

 

分页工具类

initPage()

初始化分页工具类的时候需要从前端获取字符串类型的当前页码,需要提供分页单位,需要提供数据总记录条数

我们通过将分页工具类放进model域中来从前端获取分页数据