整合ssm三大框架使用注解开发查询用户信息

sinceForever sinceForever     2022-10-16     214

关键词:

整合ssm三大框架使用注解开发查询用户信息

一、基础知识准备之spring mvc工作原理

 

 

 

二、分析

第一步:发起请求到前端控制器(DispatcherServlet)

第二步:前端控制器请求HandlerMapping查找 Handler

可以根据xml配置、注解进行查找

第三步:处理器映射器HandlerMapping向前端控制器返回Handler

第四步:前端控制器调用处理器适配器去执行Handler

第五步:处理器适配器去执行Handler

第六步:Handler执行完成给适配器返回ModelAndView

第七步:处理器适配器向前端控制器返回ModelAndView

ModelAndViewspringmvc框架的一个底层对象,包括 Modelview

第八步:前端控制器请求视图解析器去进行视图解析

根据逻辑视图名解析成真正的视图(jsp)

第九步:视图解析器向前端控制器返回View

第十步:前端控制器进行视图渲染

视图渲染将模型数据(ModelAndView对象中)填充到request

第十一步:前端控制器向用户响应结果

 

 

组件:

1、前端控制器DispatcherServlet(不需要程序员开发)

作用接收请求,响应结果,相当于转发器,中央处理器。

有了DispatcherServlet减少了其它组件之间的耦合度。

 

2、处理器映射器HandlerMapping(不需要程序员开发)

作用:根据请求的url查找Handler

 

 

3、处理器适配器HandlerAdapter

作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler

 

4、处理器Handler(需要程序员开发)

注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler

 

5、视图解析器View resolver(不需要程序员开发)

作用:进行视图解析,根据逻辑视图名解析成真正的视图(view

 

6、视图View(需要程序员开发jsp)

View是一个接口,实现类支持不同的View类型(jspfreemarkerpdf...

三、程序

1、需求

用户列表信息查询

 

2、环境准备

 

数据库环境:mysql-5.5.28-winx64

 

 

java环境:

jdk1.8

Intellij IDEA

springmvc版本:spring4.3.3

 

需要spring4.3.3所有jar(一定包括spring-webmvc-4.3.3.RELEASE.jar)

需要mybatis jar包,以及spring mybatis 整合包

需要数据库连接池jardruid-1.0.18.jar等其他数据格式处理包,如图

access-bridge-64.jar

aopalliance-1.0.jar

commons-logging-1.2.jar

druid-1.0.18.jar

jackson-annotations-2.5.0.jar

jackson-core-2.5.0.jar

jackson-databind-2.5.0.jar

joda-time-2.1.jar

mybatis-3.2.2.jar

mybatis-spring-1.1.1.jar

mysql-connector-java-5.1.20-bin.jar

spring-aop-4.3.3.RELEASE.jar

spring-aspects-4.3.3.RELEASE.jar

spring-beans-4.3.3.RELEASE.jar

spring-context-4.3.3.RELEASE.jar

spring-context-support-4.3.3.RELEASE.jar

spring-core-4.3.3.RELEASE.jar

spring-expression-4.3.3.RELEASE.jar

spring-instrument-4.3.3.RELEASE.jar

spring-instrument-tomcat-4.3.3.RELEASE.jar

spring-jdbc-4.3.3.RELEASE.jar

spring-jms-4.3.3.RELEASE.jar

spring-messaging-4.3.3.RELEASE.jar

spring-orm-4.3.3.RELEASE.jar

spring-oxm-4.3.3.RELEASE.jar

spring-test-4.3.3.RELEASE.jar

spring-tx-4.3.3.RELEASE.jar

spring-web-4.3.3.RELEASE.jar

spring-webmvc-4.3.3.RELEASE.jar

spring-webmvc-portlet-4.3.3.RELEASE.jar

spring-websocket-4.3.3.RELEASE.jar

 

3、配置前端控制器

web.xml中配置前端控制器。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <!--DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,拦截匹配的请求,
    Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。-->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.form</url-pattern>
    </servlet-mapping>
</web-app>

 

4、主要配置文件

配置注解映射器和适配器

以及spring容器中加载Handler即为controller

以及配置:

数据源

SqlSessionFactory

mapper扫描器

<?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:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.controller"/><!--如果直接采用SpringMVC,只需要把所有相关配置放到xxx-servlet.xml,xxx由web.xml文件中的servlet的name决定-->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean id="mappingJacksonHttpMessageConverter"
                  class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    <!--<context:component-scan/>标签是告诉Spring 来扫描指定包下的类,并注册被@Component,@Controller,@Service,@Repository等注解标记的组件。
    而<mvc:annotation-scan/>是告知Spring,我们启用注解驱动。然后Spring会自动为我们注册上面说到的几个Bean到工厂中,来处理我们的请求。-->
    <mvc:default-servlet-handler/>
    <!-- 让Spring框架能够捕获所有URL的请求(先调整web.xml中的DispatcherServlet的配置,使其可以捕获所有的请求:),
    同时又将静态资源的请求转由Web容器处理(此句注释意义),-->
    <bean id="dataSource"
          class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/test"></property>
        <property name="username" value="root"></property>
        <property name="password" value="123456"></property>
    </bean><!--加druid-1.0.18jar包-->
    <!-- bim基本库Session工厂Bean -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations">
            <list>
                <value>classpath:com/mapper/*.xml</value><!--如果数据库映射文件建立时选择file类型,例如名字为StudentMapper.xml,而不是直接建立xml文件,若是则会出现*.xml变红的现象-->
            </list>
        </property>
    </bean>
    <!-- 自动扫描mapping.xml文件  com.mapper.mapping-->
    <!-- 当mybatis的xml文件和mapper接口不在相同包下时,需要用mapperLocations属性指定xml文件的路径。
     *是个通配符,代表所有的文件,**代表所有目录下 -->

    <!--  通过扫描的模式,扫描目录在com/dao目录下,所有的mapper都继承SqlMapper接口的接口, 这样一个bean就可以了    -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>
</beans>

 

 

 

5:业务代码

ControllerHandler

package com.controller;

import com.dao.StudentMapper;
import com.domain.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

/**
 * Created by 谭雪娇 on 2017/4/16.
 *
 */
/*
*
* 无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller */

/*可以使用@RequestMapping 来映射URL 到控制器类,或者是到Controller 控制器的处理方法上*/
@Controller        //控制器Controller 负责处理由DispatcherServlet 分发的请求
@RequestMapping("/Student")
public class StudentController {
    @Autowired(required=false)
    StudentMapper mapper;
    @RequestMapping(value="/hello",method= RequestMethod.GET)//method 属性主要是用于限制能够访问的方法类型的。
    @ResponseBody
    public Object get(){
        List<Student> lst=mapper.get();
        return lst;
       public Object delete(@PathVariable long id){
        return mapper.deleteById(id);
    }

}

}

 

dao(接口)

package com.dao;

import com.domain.Student;

import java.util.List;

/**
 * Created by 谭雪娇 on 2017/4/16.
 */
public interface StudentMapper {
    List<Student> get();
   
}

 

domain(实体类)

package com.domain;

/**
 * Created by 谭雪娇 on 2017/4/16.
 */
public class Student {
    private String id;
    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

 

mapper(映射文件)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.dao.StudentMapper">
    <resultMap id="BaseResultMap" type="com.domain.Student">
        <id column="id" property="id" jdbcType="BIGINT"/>
        <result column="name" property="name" jdbcType="VARCHAR"></result>
    </resultMap>
    <sql id="Base_Column_List">
        id,name
    </sql>
    <select id="get" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from stu
    </select>
</mapper>

 

 

查询结果

 

 

 

 

 

 

ssm框架——以注解形式实现事务管理

...—以注解形式实现事务管理 上一篇博文《SSM三大框架整合详细教程》详细说了如何整合Spring、SpringMVC和MyBatis这三大框架。但是没有说到如何配置mybatis的事务管理,实现开发中,事务是必不可少的。本篇作为对上一篇的补充... 查看详情

javaweb学习笔记之ssm三大框架整合详细教程(代码片段)

1、基本概念1.1、SpringSpring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创... 查看详情

ssm框架注解整合

一、web应用环境  1.ServletContext   对于一个web应用,其部署在web容器(比如:tomcat)中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,它由web容器负责初始化,其为后面的spring容器提供宿主环境。 Ser... 查看详情

ssm三大框架详细整合流程(代码片段)

1、基本概念1.1、Spring     Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design 查看详情

ssm三大框架整合(代码片段)

三大框架整合的思路1、Dao层:Mybatis的配置文件:SqlMapConfig.xml不需要配置任何内容,需要有文件头。文件必须存在。applicationContext-dao.xml:mybatis整合spring,通过由spring创建数据库连接池,spring管理SqlSessionFactory、mapper代理对象。... 查看详情

ssm框架快速整合的实例-学生查询(代码片段)

SSM框架快速整合实例--学生查询一、快速准备SSM框架即Spring框架、SpringMVC框架、MyBatis框架,关于这几个框架的基础和入门程序,我前面已经写过几篇文章作为基础和入门介绍了。对于这3个框架还不熟悉的同学,可以参考一下几... 查看详情

ssm框架快速整合实例--学生查询(代码片段)

...Bean的注解管理Spring框架系列之AOP思想Spring框架系列之JDBC整合Spring框架系列之事务管理Spr 查看详情

ssm框架整合入门系列——一个简单的用户管理系统

ssm框架整合入门系列系列目标:搭建一个简单的用户管理(crud)系统功能点:分页数据库校验(jquery前端校验+JSR303后端校验ajaxRest峰哥的URL;使用HTTP协议请求方式的动词,来表示对资源的操作(GET(查询),POST(新增),put(修改),... 查看详情

免费下载全套最新010-3springspringmvcmybatis整合项目视频教程+教学资料+学习课件+源代码+软件开发工具

010-3SSM整合项目视频教程网盘地址:链接:https://pan.baidu.com/s/188ko\\_C6cWltDNhBs6cw4Yw提取码:3vnt加公众号获取更多新教程教程目录大纲./010-3SSM整合项目├──课件&源码.zip└──视频├──10、SSM高级整合基础模块修改Mapper文件.avi... 查看详情

三大框架整合(代码片段)

https://blog.csdn.net/zhshulin/article/details/37956105https://blog.csdn.net/zhshulin/article/details/37956105 使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定... 查看详情

基于ssm框架的信息管理系统的部署与分析

...一时的主流开发框架SSM,指的是SpringMVC+Spring+Mybatis框架的整合,是标准的MVC模式,将整个系统划分为View表现层、Controller控制层,Service业务层,DAO持久层等四层。框架主要分工Spring业务层:实 查看详情

java高并发框架ssm框架详细整合教程(spring+springmvc+mybatis)

获取【下载地址】  QQ:313596790  【免费支持更新】支持三大数据库mysql  oracle  sqlsever  更专业、更强悍、适合不同用户群体A代码生成器(开发利器);    增删改查的处理类,service层... 查看详情

ssm整合(基于注解开发)(代码片段)

SSM整合数据库用的mysql,数据库连接池用的c3p0创建项目新建maven项目,选择webapp骨架建好包,pom文件只留这些pom文件pom文件里添加以下依赖<!--版本锁定--><properties><spring.version>5.0.2.RELEASE</spring.version><log4j.version&g... 查看详情

springmvc入门第2天--springspringmvc与mybatis三大框架整合

...程名字日期作者备注V1.02016.07.01lutianfeinonespringmvc和mybatis整合需求:使用springmvc和mybatis完成商品列表查询。整合思路spring+springmvc+mybaits的系统架构:第一步:整合dao层mybatis和spring整合,通过spring管理mapper接口。使用mapper的扫描器... 查看详情

ssm框架的整合(非原创‘借鉴’)

...功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程和方法并没有及时记录,以后在自己的小项目中遇到... 查看详情

ssm注解+xml整合(代码片段)

一、搭建整合环境1.整合思路:1).先搭建整合的环境2).先把Spring的配置搭建完成3).再使用Spring整合SpringMVC框架4).最后使用Spring整合MyBatis框架2.创建maven工程1).补全maven目录结构├─src│├─main││├─java││├─resources││└─w... 查看详情

三:ssm框架整合思路(代码片段)

一:jar包1.spring(包括springmvc)2.mybatis3.mybatis-spring整合包4.数据库驱动5.第三方连接池6.json依赖包jackson二:整合思路Dao层:1.SqlMapConfig.xml:空文件即可,但是需要头文件2.applicationContext-dao.xmla)数据库连接池(dbcp,druid)b)SqlSessionFactory对象,需要s... 查看详情

基于ssm框架的信息管理系统的部署与分析

...一时的主流开发框架SSM,指的是SpringMVC+Spring+Mybatis框架的整合,是标准的MVC模式,将整个系统划分为View表现层、Controller控制层,Service业务层,DAO持久层等四层。框架主要分工Spring业务层:实现业务对象管理SpringMVC表示层:负责... 查看详情