ssm整合步骤及原理分析

整合说明:SSM整合可以使用多种方式,本次整合选择XML + 注解的方式。

整合思想 :1、搭建mybatis的环境
                  2、搭建springmvc的环境
                  3、搭建Spring的环境
                  4、整合spring和springmvc
                  5、整合spring和mybatis
ssm整合步骤及原理分析_第1张图片
一一讲解说明
首先准备环境:
idea创建一个maven工程,比如ssm
pom.xml引入依赖坐标

        UTF-8
        1.8
        1.8
        5.0.2.RELEASE
        1.6.6
        1.2.12
        8.0.12
        3.4.5
    

        
        
            org.aspectj
            aspectjweaver
            1.6.8
        
        
            org.springframework
            spring-aop
            ${spring.version}
        
        
            org.springframework
            spring-context
            ${spring.version}
        
        
            org.springframework
            spring-web
            ${spring.version}
        
        
            org.springframework
            spring-webmvc
            ${spring.version}
        
        
            org.springframework
            spring-test
            ${spring.version}
        
        
            org.springframework
            spring-tx
            ${spring.version}
        
        
            org.springframework
            spring-jdbc
            ${spring.version}
        
        
            junit
            junit
            4.12
            compile
        
        
            mysql
            mysql-connector-java
            ${mysql.version}
        
        
            javax.servlet
            servlet-api
            2.5
            provided
        
        
            javax.servlet.jsp
            jsp-api
            2.0
            provided
        
        
            jstl
            jstl
            1.2
         
        
            log4j
            log4j
            ${log4j.version}
        
        
            org.slf4j
            slf4j-api
            ${slf4j.version}
        
        
            org.slf4j
            slf4j-log4j12
            ${slf4j.version}
         
        
            org.mybatis
            mybatis
            ${mybatis.version}
        
        
            org.mybatis
            mybatis-spring
            1.3.0
        
        
            c3p0
            c3p0
            0.9.1.2
            jar
            compile
        
    

1、开始搭建mybatis的环境

mybatis的环境:核心配置文件sqlmapconfig.xml,mapper.xml文件(本次省略,使用注解开发),dao接口层。

ssm整合步骤及原理分析_第2张图片

编写实体类:
package com.stx.entry;

import org.springframework.context.annotation.Bean;

import java.io.Serializable;

/**
 * 账户实体类
 */
public class Account implements Serializable {
    
    private Integer id;
    
    private String name;
    
    private Double money;

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }

    @Override
    public String toString() {
        return "Account{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", money=" + money +
                '}';
    }
}

2、在web项目中编写SqlMapConfifig.xml的配置文件,编写核心配置文件 (此文件在与spring整合后便没有作用了,可以删除)

 

    
        
            
            
                
                
                
                
            
        
    
    
    

        
        
    

编写dao层接口,本次使用接口开发加注解。


import java.util.List;

/**
 * 账户dao接口
 */

public interface AccountDao {



    //查询所有账户信息
    @Select("select * from account ")
    public List findAll();

    //保存信息
    @Insert("insert into account(name,money) values (#{name},#{money})")
    public void SaveAccount(Account account);

}

2、搭建和测试SpringMVC的开发环境

springmvc框架搭建:1、web.xml中配置前端控制器(DispatcherServlet

                                     2、创建springmvc.xml的配置文件,编写配置文件

                                     3、测试SpringMVC的框架搭建是否成功

ssm整合步骤及原理分析_第3张图片

web.xml


    
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
        
        
            contextConfigLocation
            classpath:springmvc.xml
        
        
        1
    
    
        dispatcherServlet
        /
    

    
        characterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
    
    
        characterEncodingFilter
        /*
    

springmvc.xml




    
    
        
    

    
     
         
        
    

    
    
    
    

    
    

测试 SpringMVC 的框架搭建是否成功, 编写 index.jsp list.jsp 编写,超链接
3、创建 AccountController 类,编写方法,进行测试
@Controller 
@RequestMapping("/account") 
public class AccountController { 
/*** 查询所有的数据 **/
 @RequestMapping("/findAll")
 public String findAll() { 
System.out.println("表现层:查询所有账户..."); 
return "list"; 
 }
}

3、搭建spring框架



    
    
        
        
    

springmvc和spring的整合:

思路:在controller中能成功的调用service对象中的方法。

核心: 在项目启动的时候,就去加载applicationContext.xml的配置文件,在web.xml中配置 ContextLoaderListener监听器(该  
           监听器只能加载WEB-INF目录下的applicationContext.xml的配置文件,为了统一资源路径,下边加了配置加载文件径)。
实质这个监听器监听的是sevletcontext对象,引申一下这个域对象,俗称应用上下文对象,整个web应用就只有一个,生命周期和服务器的一致, 服务器启动时这个对象创建,服务器关闭时这个对象销毁,这个监听器可在服务器启动(对象创建)去加载applicationContext.xml的配置文件。
web.xml增加配置
   

    
        org.springframework.web.context.ContextLoaderListener
    

    
    
        contextConfigLocation
        classpath:applicationContext.xml
    
controller中注入service对象,调用service对象的方法。
/**
 * web层 Account控制器
 */
@Controller
@RequestMapping("/account")
public class AccountController {

    @Autowired
    private AccountService accountService;

    public void setAccountService(AccountService accountService) {
        this.accountService = accountService;
    }

    @RequestMapping("/findAll")
    public String findAll(Model model) {
        List accounts = accountService.findAll();
        for (Account account : accounts
        ) {
            System.out.println(account);
        }
        model.addAttribute("accounts", accounts);
        return "list";
    }
}

Spring整合MyBatis框架

目的 :1、把 SqlMapConfifig.xml 配置文件中的内容配置到 applicationContext.xml 配置文件中 。
           2、在 AccountDao 接口中添加 @Repository 注解
           3、在 service 中注入 dao 对象
application.xml配置文件:
将sqlsessionfactory交给spring管理,spring帮我们创建sqlsession对象,配置扫描的包,spring会生成包下接口对应的动态代理对象交给spring。
比如:
@Repository
public interface AccountDao {

拿到的是

// 获取代理对象
AccountDao dao = session.getMapper(AccountDao.class);
 

    

    
    
        
        
        
        
    

    
    
        
    

    
    
        
    


    
    
        
    

    
    
        
            
            
        
    

    
    
        
    

dao接口层的动态代理对象交给spring的IOC容器管理。

ssm整合步骤及原理分析_第4张图片

将dao的动态代理对象注入到service层:

ssm整合步骤及原理分析_第5张图片

这样ssm整合就结束了。

 

你可能感兴趣的:(mybatis,springmvc,spring)