ssm框架整合以及登录案例

ssm简介百度百科

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

Spring
  Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
  Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。

SpringMVC
  SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。

mybatis
  mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据

ssm整合的流程

1.先搭建整合的环境
2.先配置Spring的配置的环境
3.Spring整合mybatis
4.Spring整合Springmvc


ssm整合准备工作
1.建库和建表

2.建立项目和导入相关的jar包

3.项目目录结构

ssm实现过程(一一分析)
1.Spring的环境搭建
1.1开启注解扫描,此时是将Spring和Mybatis进行整合,主要就是用来处理Service层和dao层的业务逻辑。
1.2Spring来整合Mybatis框架

  • 创建生产SqlSession的工厂类,实现其自动创建代理对象的SqlSessionFactory
  • 加载数据源,实现Mybatis对其数据的控制
  • 实例化接口对象,实现代理模式,让对象的实例化交给Sping容器来做,不用写实现类

1.3Spring声明式事务的管理

  • 配置事务管理器(切面)
  • 配置通知的具体的内容
  • 配置事务和通知的具体的结合
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!--开启注解的扫描,此时是将sping和mybatis的进行整合,主要就是处理service层和dao层业务--><context:component-scan base-package="cn.ujiuye"><!--此时是配置哪些数据不需要扫描的,其是用springmvc来负责管理的--><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!--Spring来整合mybatis框架的开始--><!--Spring来整合mybatis的框架,显然是mybatis有工厂,有创建代理对象的包,可以自动创建代理对象的sqlSession对象,显然是我们需要是创建器工厂类的实现了其对象,显然我们需要做的无非就实例化数据源,工厂类和实例化接口的实现类--><!--配置数据源--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql:///ssm"/><property name="user" value="root"/><property name="password" value="123"/></bean><!--配置工厂类,里面的数据实现了对mybatis数据的相关的依赖和对数据库的调用--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="configLocation" value="classpath:SqlMapConfig.xml"/><property name="dataSource" ref="dataSource"/></bean><!--实例化dao层.配置其相关的dao层接口的实现类,完成对象的创建--><bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="cn.ujiuye.dao"/></bean><!--Spirng来整合mybatis框架的结束--><!--配置Spring的声明式事务--><!--配置事物管理器--><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!--配置事务的通知--><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="find*" read-only="true"/><tx:method name="*" isolation="DEFAULT"/></tx:attributes></tx:advice><!--配置aop增强--><aop:config><aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.ujiuye.service.impl.*ServiceImpl.*(..))"/></aop:config>
</beans>


2.Mybatis环境的搭建(这里主要讲解单表的注解开发可以不写)
2.1配置延迟加载
2.2配置别名
2.3配置映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!--配置延迟加载--><settings><setting name="lazyLoadingEnabled" value="true"/></settings><!--配置别名,配置实体类下的别名,方便其对数据的输入和输出的操作--><typeAliases><package name="cn.ujiuye.domain"/></typeAliases><!--后端分页的插件,使用其插件的用法,能够大大的减少其关于分页的写法--><plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"><!--配置连接的相关的数据库的方言--><property name="helperDialect" value="mysql"/></plugin></plugins><!--引入映射配置文件,扫描该包下的所有的配置的文件--><mappers><package name="cn.ujiuye.dao"/></mappers></configuration>

3.SpringMvc的环境搭建
3.1开启注解扫描
3.2配置视图解析器
3.3配置资源过滤器
3.4开启对springmvc注解的支持

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--开启注解的扫描,只扫描Controllerz注解--><context:component-scan base-package="cn.ujiuye"><!--只扫描Contrlller的注解--><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!--配置试图解析器对象--><bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/views/"></property><property name="suffix" value=".jsp"></property></bean><!--过滤静态资源--><!--<mvc:resources mapping="/img/**" location="/img/" /><mvc:resources mapping="/static/**" location="/static/" /><mvc:resources mapping="/views/**" location="/views/" />--><mvc:default-servlet-handler/><!--开启springmvc注解的支持--><mvc:annotation-driven/>
</beans>



4.配置Springmvc细节和Spring的整合(web.xml的配置)
4.1.配置Springmvc的前端控制器,完成springmvc.xml的加载
4.2配置编码过滤器
4.3配置监听器,当web.xml一被加载的时候就启动对applicationContext.xml的配置文件的加载

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><!--解决中文乱码问题,配置一个过滤器--><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><!--filter过滤器为了做UTF-8解决编码格式问题--><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!--配置监听器,默认只加载WEB-INF目录下的applicationContext.xml配置文件,主要是监听web项目的创建,刚开始显然service层(没有调用其spring.xml)的业务没有办法注入到容器中,通过监听监听的加载而实现了加载的过程,从而实现加载的过程,从而实现了注入--><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!--设置applicationContext.xml配置文件的路径--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationConContext.xml</param-value></context-param><!--配置前端控制器--><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--加载springmvc.xml配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc.xml</param-value></init-param><!--启动服务器,就加载这个servlet--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>


6.具体的代码的实现(直接贴代码,详情看注解)
Controller层

package cn.ujiuye.controller;import cn.ujiuye.domain.User;
import cn.ujiuye.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpSession;
import java.util.List;/*** @author liugang* @date 2019/10/18*/
@Controller
public class UserController {//将service对象注入到controller层@Autowiredprivate UserService userService;/*** 使用账号和密码判断该用户是否能够登录成功* @return*/@RequestMapping("/login")public String LoginUser(User user, HttpSession session){User loginUser = userService.login(user);if (loginUser != null){session.setAttribute("user",loginUser);return "index";}return "../login";}}

Service层

package cn.ujiuye.service;import cn.ujiuye.domain.User;import java.util.List;/*** @author liugang* @date 2019/10/18*/
public interface UserService {/*** 根据传递过来的数据查训用户的信息是否存在* @param user* @return*/public  User login(User user);
}package cn.ujiuye.service.impl;import cn.ujiuye.dao.UserDao;
import cn.ujiuye.domain.User;
import cn.ujiuye.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;/*** @author liugang* @date 2019/10/18*/
@Service("userService")
public class UserServiceImpl implements UserService {@Autowiredprivate UserDao userDao;/*** 根据用于登录的信息返回该用户的信息* @param user* @return*/@Overridepublic User login(User user) {return userDao.loginUser(user);}
}

dao层注解开发

package cn.ujiuye.controller;import cn.ujiuye.domain.User;
import cn.ujiuye.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpSession;
import java.util.List;/*** @author liugang* @date 2019/10/18*/
@Controller
public class UserController {//将service对象注入到controller层@Autowiredprivate UserService userService;/*** 使用账号和密码判断该用户是否能够登录成功* @return*/@RequestMapping("/login")public String LoginUser(User user, HttpSession session){User loginUser = userService.login(user);if (loginUser != null){session.setAttribute("user",loginUser);return "index";}return "../login";}}

jsp页面不再展示,需要请私聊

运行结果

愿景

愿君提笔撸码,归来仍是少年

ssm框架整合以及登录案例相关推荐

  1. JavaEE——SSM框架整合实现学生信息注册案例

    目录 十.SSM框架整合实现学生信息注册案例 1. 创建06-ssm的web项目 2. 修改web.xml版本为4.0 3. 更新pom.xml文件 4. jdbc的属性文件和日志文件 5. appl ...

  2. java ssm小案例_简易的SSM框架整合小案例

    简易的SSM框架整合小案例 一.创建一个web工程的maven项目 1.项目名随便起 2.选择好你的maven路径,然后finish 二.配置pom.xml文件 org.springframework ...

  3. SSM框架整合完整案例

    SSM框架整合 一.整合思路 二.案例实战 1. 项目前期准备 2. 整合dao层 ① mybatis全局配置文件(SqlConfig.xml) ② 配置spring.xml ③ 编写POJO类(ja ...

  4. SSM框架整合+简单案例实现

    SSM框架整合+简单案例实现 文章目录 前言 一.Spring+SpringMVC+Mybatis框架整合 1.建立一个新的web项目 2.所需jar包 3.建立数据库表与实体类之间的映射 4.web ...

  5. SSM Chapter 12 SpringMVC扩展和SSM框架整合

    SSM Chapter 12 SpringMVC扩展和SSM框架整合 笔记 本章目标: 掌握JSON对象的处理 理解数据转换和格式化 了解本地化 掌握Spring MVC+Spring+MyBatis ...

  6. SSM框架搭建与实战案例

    SSM(Spring,Spring MVC,Mybatis),下面我们就动手跟着步骤搭建一个 SSM 框架整合的项目工程,并写出一个基于 SSM 框架的商品管理系统. 开发环境:SSM,MyEclip ...

  7. ssm框架整合并实现简单验证登陆功能

    ssm框架整合 ssm整合要用到的jar包和配置文件 新建动态web项目, 在web-inf/lib中添加资源中给的所有jar包,并右键依赖项目 添加以下配置文件到src下 将配置文件中的web.xm ...

  8. Spring框架学习笔记09:基于XML配置方式搭建SSM框架实现用户登录

    文章目录 一.采用MVC架构 二.用户登录运行效果 三.基于XML配置方式搭建SSM框架实现用户登录 (一)创建数据库与表 - simonshop (t_user) 1.创建数据库 - simonsh ...

  9. (转)淘淘商城系列——SSM框架整合之Dao层整合

    http://blog.csdn.net/yerenyuan_pku/article/details/72721093 一个项目中往往有三层即Dao层.Service层和Web层,看标题就知道了,本文 ...

  10. SpringMvc框架及SSM框架整合

    SpringMvc框架及SSM框架整合 一.SpringMvc相关知识 1.Spring和SpringMvc的关系 ​ 1.1.Spring是IOC和AOP的容器框架,SpringMVC是基于Spri ...

最新文章

  1. linux bash字符串截取
  2. 18.移动架构数据库升级解决方案
  3. nginx与Apache的涉及的计算机原理说明
  4. log4j中用变量配置日志输出文件位置
  5. spark广播变量的使用(转)
  6. 云原生 | 阿里巴巴的Dapr实践与探索
  7. php判断微信版本,判断是否是微信访问并获取版本号
  8. Mac下sudo后环境变量失效的问题
  9. ★LeetCode(182)——查找重复的电子邮箱(MySQL)
  10. dta乱码_DTA是自动化索引的出色工具
  11. “技术需求”与“技术成果”项目之间关联度计算模型 复赛top1解决方案
  12. 常用三大java框架
  13. 翻译: Transfer learning 迁移学习指南
  14. 创建库文件c语言,创建自己的函数库
  15. arcgis建立拓扑关系
  16. 论文笔记——CPN(Corner-Proposal-Network)Det
  17. AMD免驱显卡支持列表
  18. 上海住房公积金的提取条件
  19. 2018ACM-ICPC焦作站E题Resistors in Parallel
  20. 制造业的业务流程管理BPM

热门文章

  1. APP部分漏洞及解决方法
  2. ps替换png图标的背景色
  3. python语言是不是多模型语言_Python模型转换为Modelica模型的方法与流程
  4. 卷积操作改进之Involution: Inverting the Inherence of Convolution for Visual Recognition
  5. JAVA 图片压缩及png转jpg
  6. 高清录播系统与流媒体服务器,校园高清一体式高清录播系统教学录播跟踪网络直播...
  7. 如何购买腾讯云学生服务器
  8. C++:round函数用法
  9. 高速电路常用的信号完整性测试手段与仿真
  10. iis php性能优化,iis优化网站运行速度 网站浏览更加快