SSM框架整合


Spring + Spring MVC + MyBatis

Spring MVC 负责实现 MVC 设计模式,MyBatis 负责数据持久层,Spring 负责管理 Spring MVC 和 MyBatis 相关对象的创建和依赖注入。

  • 创建 Maven 工程,pom.xml

  
  
    org.springframework
    spring-webmvc
    5.0.11.RELEASE
  

  
  
    org.springframework
    spring-jdbc
    5.0.11.RELEASE
  

  
  
    org.springframework
    spring-aop
    5.0.11.RELEASE
  
  
    org.springframework
    spring-aspects
    5.0.11.RELEASE
  

  
  
    org.mybatis
    mybatis
    3.4.5
  

  
  
    org.mybatis
    mybatis-spring
    1.3.1
  

  
  
    mysql
    mysql-connector-java
    8.0.11
  

  
  
    c3p0
    c3p0
    0.9.1.2
  

  
  
    jstl
    jstl
    1.2
  

  
  
    javax.servlet
    javax.servlet-api
    3.1.0
  
  
  
    org.projectlombok
    lombok
    1.18.6
    provided
  

  • web.xml 中配置 SpringMVC、Spring、字符编码过滤器、加载静态资源。



  Archetype Created Web Application
  
  
    contextConfigLocation
    classpath:spring.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  

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

  
  
    characterEncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      UTF-8
    
  
  
    characterEncodingFilter
    /*
  
  
  
  
    default
    *.js
  
  
    default
    *.css
  
  
    default
    *.jpg
  

  • 在 spring.xml 中配置 MyBatis 和 Spring 的整合。
<?xml version="1.0" encoding="UTF-8"?>


    
    
        
        
        
        
        
        
    

    
    
        
        
        
    

    
    
        
    


  • config.xml 配置一些 MyBatis 辅助信息,比如打印 SQL 等。
<?xml version="1.0" encoding="UTF-8"?>


    
        
        
    

    
        
        
    


  • 配置 springmvc.xml
<?xml version="1.0" encoding="UTF-8"?>


    
    

    
    

    
    
        
        
    


  • 实体类
package com.southwind.entity;

import lombok.Data;

@Data
public class User {
    private long id;
    private String name;
    private String password;
    private double score;
}
  • UserRepository
package com.southwind.repository;

import com.southwind.entity.User;

import java.util.List;

public interface UserRepository {
    public List findAll();
}
  • UserRepository.xml
<?xml version="1.0" encoding="UTF-8" ?>


    

  • UserService
package com.southwind.service;

import com.southwind.entity.User;

import java.util.List;

public interface UserService {
    public List findAll();
}
  • UserServiceImpl
package com.southwind.service.impl;

import com.southwind.entity.User;
import com.southwind.repository.UserRepository;
import com.southwind.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserRepository userRepository;

    @Override
    public List findAll() {
        return userRepository.findAll();
    }
}
  • UserHandler
package com.southwind.controller;

import com.southwind.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("/user")
public class UserHandler {
    @Autowired
    private UserService userService;

    @GetMapping("/findAll")
    public ModelAndView findAll(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("index");
        modelAndView.addObject("list",userService.findAll());
        return modelAndView;
    }
}

参考文章

1小时学会SSM框架整合

【创作不易,望点赞收藏,若有疑问,请评论,谢谢】