目录
零、前言
一、说明
1、整合说明
2、最终目标
3、数据库准备
二、搭建整合环境
1、创建 maven 工程
2、导入依赖坐标
3、创建java和resources文件夹
4、创建类和接口文件
【1】创建存放 javabean 类文件:cn.star.domain.Users
【2】创建数据访问层 UsersDao 接口:cn.star.dao.UsersDao
【3】创建业务层 UsersService 接口:cn.star.service.UsersService
【4】Service 实现类:cn.star.service.impl.UsersServiceImpl
【5】创建用户控制层UsersController类:cn.star.controller.UsersController
5、创建配置文件
【1】spring.xml
【2】spring-mvc.xml
【3】mybatis.xml
【4】log4j.properties
【5】目录结构
三、整合框架编写
1、编写spring框架
【1】配置注解扫描
【2】为service实现类添加注解
【3】测试spring框架
2、编写 SpringMVC 框架
【1】配置 web.xml
【2】配置 spring-mvc.xml
【3】测试SpringMVC
3、Spring 整合 SpringMVC 框架
【1】配置web.xml
【2】service注入controller
【3】测试运行
4、编写 mybatis 框架
【1】配置mybatis.xml配置文件
【2】编写UserDao类
【3】编写测试类
5、Spring整合Mybatis框架
【1】配置spring.xml
【2】注入dao数据
【3】在service注入dao
【4】测试用户查询、注册、登录
四、源码
零、前言
当下 Spring 全家桶如日中天,Spring 系列框架已然成为 Java 后端开发的必备知识,接触了 Spring、Spring MVC、Mybatis 框架后,是不是想尝试将他们整合一下呢,虽然说 SSM 框架比不上 Spring boot 的简便高效,但 SSM 还是在很多公司中使用,况且整合 SSM 框架对于学习理解 Spring 还是有一定帮助的,博主萌新,大佬轻拍|=_=|话不多说,开拔!
一、说明
1、整合说明
服务器开发分为三层,表现层、业务层、持久层表现层使用SpringMVC实现,业务程使用Spring实现,持久层使用Mybatis实现使用Spring框架来整合 SpringMVC和Mybatis框架这里使用xml配置文件+注解的方式进行搭建
2、最终目标
最终实现通过前端页面对数据库进行查询和插入,实现用户的登录注册功能
3、数据库准备
CREATE DATABASE myssm;USE myssm;CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'id主键', username VARCHAR(20) NOT NULL COMMENT '用户名',PASSWORD VARCHAR(20) NOT NULL COMMENT'用户密码');INSERT INTO users (username,PASSWORD) VALUES("onestar","123");INSERT INTO users (username,PASSWORD) VALUES("twostar","456");
二、搭建整合环境
1、创建 maven 工程
【1】点击:文件--->模块,选择 Maven,勾选 Create from achetype,选择webapp,如下图,点击写一个
打开UC浏览器 查看更多精彩图片
【2】选择maven配置(已选可不用管),点击下一个
打开UC浏览器 查看更多精彩图片
【3】给项目命名并保存到相应路径下,点击完成
打开UC浏览器 查看更多精彩图片
创建好后目录结构如下:
打开UC浏览器 查看更多精彩图片
在pom.xml里面导入坐标,我的pom文件内容如下:在main目录下面创建java和resources文件夹,并设置相应文件
打开UC浏览器 查看更多精彩图片
打开UC浏览器 查看更多精彩图片
4、创建类和接口文件
在java文件夹下创建类文件,所需的类文件有以下几个:
存放javabean的 domain 包下的用户类:cn.star.domain.Users
数据访问层 dao 包下的用户 dao 接口:cn.star.dao.UsersDao
业务层 service 包下的 UsersService 接口:cn.star.service.UsersService
业务层 service 包下的 service 实现类,继承service接口:cn.star.service.impl.UsersServiceImpl
控制层 controller 包下的用户控制层UsersController类:cn.star.controller.UsersController
【1】创建存放 javabean 类文件:cn.star.domain.Users这里只需要编写接口就可以了,框架会帮我们生成一个代理对象 继承 UsersService 接口
打开UC浏览器 查看更多精彩图片
【5】创建用户控制层UsersController类:cn.star.controller.UsersController
打开UC浏览器 查看更多精彩图片
【1】spring.xml
【2】spring-mvc.xml
【3】mybatis.xml
【4】log4j.properties
# Set root category priority to INFO and its only appender to CONSOLE.#log4j.rootCategory=INFO, CONSOLE debug info warn error fatallog4j.rootCategory=info, CONSOLE, LOGFILE # Set the enterprise logger category to FATAL and its only appender to CONSOLE.log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE # CONSOLE is set to be a ConsoleAppender using a PatternLayout.log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n # LOGFILE is set to be a File appender using a PatternLayout.log4j.appender.LOGFILE=org.apache.log4j.FileAppenderlog4j.appender.LOGFILE.File=d:\axis.loglog4j.appender.LOGFILE.Append=truelog4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayoutlog4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n
【5】目录结构
至此,整个目录结构如下
打开UC浏览器 查看更多精彩图片
三、整合框架编写
1、编写spring框架
【1】配置注解扫描
在spring.xml中配置注解扫描,加上以下配置:
【2】为service实现类添加注解
在UsersServiceImpl类中添加注解,把service交给IOC容器管理
@Service("usersService")public class UsersServiceImpl implements UsersService {...}
【3】测试spring框架
这里只做用户查询测试
打开UC浏览器 查看更多精彩图片
package cn.star.test;import cn.star.service.UsersService;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * 〈一句话功能简述〉
* 〈测试类〉 * * @author OneStar * @create 2019/11/11 * @since 1.0.0 */public class springtest { @Test public void Test(){ //加载配置文件 ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring.xml"); //获取对象 UsersService us = (UsersService) ac.getBean("usersService"); //调用方法 us.findUsers(); }}
运行,打印以下信息则搭建成功:
打开UC浏览器 查看更多精彩图片
2、编写 SpringMVC 框架
【1】配置 web.xml
配置前端控制器
加载spring-mvc.xml配置文件
启动服务器,创建Servlet
配置过滤器解决中文乱码
【2】配置 spring-mvc.xml
开启注解扫描,只扫描 controller
配置视图解析器
过滤静态资源
开启SpringMVC注解支持
【3】测试SpringMVC
编写用户控制层
编写index.jsp页面
编写跳转页面
1. 编写UsersController用户控制层
package cn.star.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/** * 〈一句话功能简述〉
* 〈用户控制层〉 * * @author OneStar * @create 2019/11/9 * @since 1.0.0 */@Controller@RequestMapping("/users")public class UsersController { @RequestMapping("/findUsers") public String findUsers(){ System.out.println("表现层:查询用户"); return "Users"; }}
3. 编写跳转页面
在 WEB-INF 目录下新建 pages 目录,pages 目录下创建 Users.jsp 页面,编写 Users.jsp
4. 部署Tomcat项目并测试
打开UC浏览器 查看更多精彩图片
打开UC浏览器 查看更多精彩图片
部署好后运行,点击测试查询链接,跳转到查询用户界面,SpringMVC配置成功
打开UC浏览器 查看更多精彩图片
打开UC浏览器 查看更多精彩图片
3、Spring 整合 SpringMVC 框架
使用spring框架整合springmvc框架,目的就是能够使用 controller 层方法调用 service 业务层方法,那要如何实现呢?分析如下:
浏览器发送请求,通过web.xml中配置的前端控制器加载springmvc.xml配置文件
在springmvc.xml配置文件中配置Spring的监听器,默认只加载WEB-INF目录下的spring.xml配置文件
将service注入controller,调用service对象的方法进行测试
【1】配置web.xml
配置Spring的监听器和文件路径
【2】service注入controller
修改 UsersController 类,将service注入controller,调用service对象的方法进行测试,修改后如下:
package cn.star.controller;import cn.star.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;/** * 〈一句话功能简述〉
* 〈用户控制层〉 * * @author OneStar * @create 2019/11/9 * @since 1.0.0 */@Controller@RequestMapping("/users")public class UsersController { @Autowired private UsersService usersService; @RequestMapping("/findUsers") public String findUsers(){ System.out.println("表现层:查询用户"); //调用service对象的方法进行测试 usersService.findUsers(); return "Users"; }}
【3】测试运行
点击测试查询链接后,在后台打印一下信息,说明spring成功整合springmvc
打开UC浏览器 查看更多精彩图片
4、编写 mybatis 框架
【1】配置mybatis.xml配置文件
在configuration标签内添加以下配置:
【2】编写UserDao类
public interface UsersDao { //查询所有用户 @Select("select * from users") public List
【3】编写测试类
这里测试用户查询和注册,创建测试类:cn.star.test.mybatistest
打开UC浏览器 查看更多精彩图片
package cn.star.test;import cn.star.dao.UsersDao;import cn.star.domain.Users;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;import java.io.InputStream;import java.util.List;/** * 〈一句话功能简述〉
* 〈mybatis测试类〉 * * @author OneStar * @create 2019/11/11 * @since 1.0.0 */public class mybatistest { /** * 测试查询用户 * @throws Exception */ @Test public void run1() throws Exception { // 加载配置文件 InputStream in = Resources.getResourceAsStream("mybatis.xml"); // 创建SqlSessionFactory对象 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in); // 创建SqlSession对象 SqlSession session = factory.openSession(); // 获取到代理对象 UsersDao dao = session.getMapper(UsersDao.class); // 查询所有数据 List
测试查询用户和测试注册用户,能查询出用户数据和注册成功,mybatis框架搭建成功
5、Spring整合Mybatis框架
Spring要想成功整合Mybatis框架,就需要service层成功调用dao对象,然后进行相关数据库的增删改查操作
将dao代理对象存到IOC容器中
通过service注入dao
【1】配置spring.xml
配置连接池
配置SqlSessionFactory工厂
配置UsersDao接口所在包
配置好后,就没 mybatis.xml 什么事了,可以删去
【2】注入dao数据
修改Usersdao类,添加注解
@Repositorypublic interface UsersDao {...}
【3】在service注入dao
修改UsersServiceImpl类,修改后如下:
package cn.star.service.impl;import cn.star.dao.UsersDao;import cn.star.domain.Users;import cn.star.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;/** * 〈一句话功能简述〉
* 〈Service 实现类〉 * * @author OneStar * @create 2019/11/9 * @since 1.0.0 */@Service("usersService")public class UsersServiceImpl implements UsersService { @Autowired private UsersDao usersDao; @Override public List
【4】测试用户查询、注册、登录
1、修改UsersController类,将数据显示在页面上,修改后如下:
package cn.star.controller;import cn.star.domain.Users;import cn.star.service.UsersService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import java.util.List;/** * 〈一句话功能简述〉
* 〈用户控制层〉 * * @author OneStar * @create 2019/11/9 * @since 1.0.0 */@Controller@RequestMapping("/users")public class UsersController { @Autowired private UsersService usersService; /** * 查询用户 * @param model * @return */ @RequestMapping("/findUsers") public String findUsers(Model model){ System.out.println("表现层:查询用户"); //调用service对象的方法进行测试 List
2、修改 index.jsp 页面,为 index.jsp 页面添加注册表单和登录表单
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
3、修改用户查询跳转页面Users.jsp,将查询数据显示在页面上
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
查询所有用户
${list}4、创建注册成功提醒页面:success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
注册成功
5、创建登录成功和登录失败提醒页面:successlogin.jsp、falselogin.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
登录成功
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>登录失败
6、运行Tomcat服务器,点击“测试查询”可以查询用户,输入用户名和密码可以进行登录和注册
打开UC浏览器 查看更多精彩图片
四、源码
至此,SSM框架实现用户查询、注册、登录——IDEA整合Spring、Spring MVC、Mybatis 框架搭建完成,这个框架目录结构如下:
打开UC浏览器 查看更多精彩图片
能看到这里,实属不易,不如点赞收藏+关注<(▰˘◡˘▰)