此博客描述了SSM框架整合的项目结构和项目源码,共包含六个部分:
(1)SSM框架环境搭建
(2)Spring框架环境搭建
(3)SpringMVC框架环境搭建
(4)Spring框架整合SpringMVC框架
(5)MyBatis框架环境搭建
(6)Spring框架整合MyBatis框架。
具体内容请点击阅读全文…
SSM框架整合
- SSM框架
- Spring框架
- SpringMVC框架
- SpringMVC框架整合
- MyBatis框架
- MyBatis框架整合
SSM框架
结构目录
- java
- resources
- log4j.properties(日志文件)
- pom.xml(Maven项目配置文件)
Maven项目配置文件
- Spring框架
- spring-beans
- spring-core
- spring-context
- spring-context-support
- spring-aop
- aspectjweaver
- spring-org
- spring-test
- spring-tx
- SpringMVC框架
- spring-web
- spring-webmvc
- 前端
- servlet-api
- jsp-api
- jstl
- MyBatis框架
- mybatis
- mybatis-spring
- 数据库
- mysql-connector-java
- c3p0
- 日志
- log4j
- slf4j
- slf4j-log4j12
- 测试
- junit
pom.xml
1 |
|
log日志文件
- 记录日志
log4j.properties
1 | # Set root category priority to INFO and its only appender to CONSOLE. |
Spring框架
结构目录
- java
- dao
- AccountDao.java(持久层)
- domain
- Account.java(JavaBean对象)
- service
- AccountService.java(业务层)
- AccountServiceImp.java(业务层)
- test
- TestSpring.java(测试文件)
- dao
- resources
- applicationContext.xml(Spring配置文件)
Spring配置文件
- 开启注解扫描
- 忽略表现层注解
applicationContext.xml
1 |
|
JavaBean对象
Accont.java
1 | package cn.water.domain; |
持久层
- MyBatis框架生成代理对象,我们不需要创建实现类
AccountDao.java
1 | package cn.water.dao; |
业务层
AccountService.java
1 | package cn.water.service; |
AccountServiceImp.java
1 | package cn.water.service; |
测试
TestSpring.java
1 | package cn.water.test; |
运行结果
1 | 业务层:查询所有用户 |
SpringMVC框架
结构目录
- java
- controller
- AccountController.java(表现层)
- controller
- resources
- applicationContext.xml(Spring配置文件)
- springmvc.xml(SpringMVC配置文件)
- webapp
- WEB-INF
- pages
- list.jsp(jsp页面文件)
- web.xml(web配置文件)
- pages
- index.jsp(jsp页面文件)
- WEB-INF
web配置文件
- 前端控制器
- 配置 前端控制器(DispatcherServlet)
- 配置 创建前端控制器时,加载配置文件(contextConfigLocation)
- 配置 服务器启动时,立即创建前端控制器(1)
- 配置 映射/作用范围(/)
- 过滤器
- 配置 过滤器(CharacterEncodingFilter)
- 配置 编码(UTF-8)
- 配置 映射/作用范围(/*)
web.xml
1 | <!DOCTYPE web-app PUBLIC |
SpringMVC配置文件
- 开启 注解扫描(context:component-scan)
- 只扫描表现层注解
- 配置 视图解析器(InternalResourceViewResolver)
- 配置 前端控制器(mvc:resource)
- 开启 SpringMVC注解支持(mvc:annotation-driven)
springmvc.xml
1 |
|
表现层
AccountController.java
- 返回:list
1 | package cn.water.controller; |
jsp页面
index.jsp
- 执行表现层的方法,获得返回值“/WEB-INF/pages/list.jsp”,跳转页面
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
jsp页面
- 展示
list.jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
Spring 整合 SpringMVC
结构目录
- java
- controller
- AccountController.java(表现层)
- dao
- AccountDao.java(持久层)
- domain
- Account.java(JavaBean对象)
- service
- AccountService.java(业务层)
- AccountServiceImp.java(业务层)
- controller
- resources
- applicationContext.xml(Spring配置文件)
- springmvc.xml(SpringMVC配置文件)
- webapp
- WEB-INF
- pages
- list.jsp(jsp页面文件)
- web.xml(web配置文件)
- pages
- index.jsp(jsp页面文件)
- WEB-INF
web配置文件
- 监听器
- 配置 监听器(ContextLoaderListener)
- 配置 服务器启动时,加载配置文件(contextConfigLocation)
- 前端控制器
- 过滤器
web.xml
1 | <!DOCTYPE web-app PUBLIC |
表现层
- 通过依赖反转获取 业务层对象,并执行业务层的方法,到达Spring与SpringMVC的整合。
AccountController.java
1 | package cn.water.controller; |
执行结果
点击 index.jsp 页面,执行表现层中的findAll(),和业务层的findAll(),最后跳转到 list.jsp 页面。
1 | 表现层:查询所有用户信息 |
MyBatis框架
数据库表
1 | CREATE DATABASE ssm; |
结构目录
- java
- dao
- AccountDao.java(持久层)
- domain
- Account.java(JavaBean对象)
- test
- TestMyBatis(测试类)
- dao
- resources
- SqlMapConfig.xml(数据库连接配置文件)
数据库连接配置文件
方式一
jdbcConfig.properties
1 | jdbc.driver=com.mysql.jdbc.Driver |
SqlMapConfig.xml
1 |
|
方式二
SqlMapConfig.xml
1 |
|
持久层
- 采用注解的方式
AccountDao
1 | package cn.water.dao; |
测试类
TestMyBatis
1 | package cn.water.test; |
运行结果
1 | Account{id=1, name='cat', money=9.16} |
Spring 整合 MyBatis
结构目录
- java
- controller
- AccountController.java(表现层)
- dao
- AccountDao.java(持久层)
- domain
- Account.java(JavaBean对象)
- service
- AccountService.java(业务层)
- AccountServiceImp.java(业务层)
- controller
- resources
- applicationContext.xml(Spring配置文件)
- springmvc.xml(SpringMVC配置文件)
- webapp
- WEB-INF
- pages
- list.jsp(jsp页面文件)
- web.xml(web配置文件)
- pages
- index.jsp(jsp页面文件)
- WEB-INF
Spring配置文件
- 开启注解扫描
- 忽略表现层注解
- Spring 整合 MyBatis
- 配置 连接池(ComboPooledDataSource)
- 配置 SqlSessionFactoryBean
- 配置 持久层接口的包
- Spring 声明式事务管理
- 配置 事务管理(DataSourceTransactionManager)
- 配置 事务通知(tx:advice)
- 配置 AOP增强(aop:config)
applicationContext.xml
1 |
|
业务层
- 业务层调用持久层
AccountServiceImp.java
1 | package cn.water.service; |
jsp页面
index.jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
jsp页面
list.jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> |
运行结果
页面展示
1 | 用户信息列表 |
控制台
1 | 表现层:查询所有用户信息 |