SSM框架整合

SSM框架整合是指将Spring、Spring MVC(Spring Web)和MyBatis三个常用的Java开发框架整合在一起,以便更轻松地开发现代化的Java Web应用程序。以下是对SSM框架整合的详细介绍:

1. Spring(Spring Framework):

  • Spring 是一个轻量级的开源框架,用于构建企业级应用程序。
  • 核心功能包括依赖注入(Dependency Injection)、面向切面编程(Aspect-Oriented Programming)、事务管理、数据访问(通过JDBC、ORM等)、MVC模式支持等。
  • Spring通过容器管理对象的生命周期,提供了更好的松耦合性和可测试性。

2. Spring MVC:

  • Spring MVC 是Spring Framework的一部分,用于构建Web应用程序。
  • 它提供了一个MVC(Model-View-Controller)架构,用于将应用程序分成模型、视图和控制器。
  • 控制器接收HTTP请求,调用相关的业务逻辑(模型),并返回视图。
  • Spring MVC支持RESTful风格的Web服务开发。

3. MyBatis:

  • MyBatis 是一个开源的持久性框架,用于与关系型数据库进行交互。
  • 它将SQL查询与Java对象映射(ORM)结合在一起,使开发者能够使用面向对象的方式访问数据库。
  • MyBatis提供了XML配置和注解配置两种方式来描述SQL映射。

整合SSM框架的步骤:

Step 1: 准备工作

  • 创建一个新的Maven项目或Web项目,确保已经配置好Java环境和Maven构建工具。

Step 2: 添加依赖

  • 在项目的pom.xml文件中添加Spring、Spring MVC和MyBatis的依赖。
  • 
    
        org.springframework
        spring-core
        5.3.9
    
    
    
    
        org.springframework
        spring-webmvc
        5.3.9
    
    
    
    
        org.mybatis
        mybatis
        3.5.7
    
    

    Step 3: 配置Spring

  • 创建Spring的配置文件,通常命名为spring.xml。配置Spring容器、数据源、事务管理等。
  • Step 4: 配置MyBatis

  • 创建MyBatis的配置文件,通常命名为mybatis-config.xml。配置数据源、Mapper扫描路径等。
  • Step 5: 配置Spring MVC

  • 创建Spring MVC的配置文件,通常命名为spring-mvc.xml。配置MVC组件扫描、视图解析器等。
  • Step 6: 编写Controller和Mapper

  • 创建控制器(Controller)类处理HTTP请求,并编写MyBatis Mapper接口和SQL映射文件。
  • Step 7: 部署项目

  • 部署项目到Servlet容器(如Tomcat)并启动。
  • Step 8: 访问应用程序

  • 打开Web浏览器,访问应用程序的URL,观察是否可以正常运行。
  • 整合SSM框架后,您可以使用Spring来管理Bean、实现业务逻辑,使用Spring MVC来处理Web请求和响应,使用MyBatis来访问数据库。这种整合使得开发Web应用程序更加方便和高效。

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 的整合。




    
    
        
        
        
        
        
        
    

    
    
        
        
        
    

    
    
        
    

config.xml 配置一些 MyBatis 辅助信息,比如打印 SQL 等。




    
        
        
    

    
        
        
    

配置 springmvc.xml




    
    

    
    

    
    
        
        
    

实体类

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




    

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;
    }
}

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