整合springBoot+SSM及框架说明

目录

1.关于springBoot的说明

       1.1 springBoot的定义

        1.2 springBoot的作用

2. 关于springMVC的说明

        2.1 springMVC的作用

3. Spring的的作用

4.mybatis的作用

一、创建项目的目录

 二、pom文件引入jar包

三、配置yml文件,配置数据源及端口

四、创建pojo类

五、创建启动类用来启动服务

六、创建service接口

七、创建service的实现类

八、创建UserMapper.xml

九、创建mapper接口

十、创建UserController

十一、创建页面

十二. 页面结果

十三.关于springboot+SSM整合的说明


1.关于springBoot的说明

       1.1 springBoot的定义

                Spring Boot是伴随着Spring4.0共同诞生的,它的目的就是简化spring的配置及开发,并协助开发人员可以整体管理应用程序的配置而不再像以前那样需要做大量的配置工作,它提供了很多开发组件,并且内嵌了web应用容器,如tomcat和Jetty等。其目的便是使我们的开发变得简化并且能大幅度提高开发人员的开发效率,为了简化Spring功能的配置我们可以引入或启动我们需要的Spring功能。这样做的好处就是避免开发人员过多的对框架的关注,而把更多的精力与时间放在系统的业务逻辑代码中。

        1.2 springBoot的作用

        Spring Boot框架,其功能非常简单,便是帮助我们实现自动配置。我们都知道Spring Boot框架的核心是自动配置。只要有相应的jar包,Spring就会帮助我们实现自动配置,而无需像以前我们使用spring框架一样要做很多配置。当默认配置不能满足我们要求的时候,我们能够用自己的配置来替换这些自动的配置类。此外,上面我们也提到Spring Boot内嵌了web应用容器,除此之外还集成了系统监控等功能,这些都可以帮助我们快速搭建企业级的应用程序并使用。

2. 关于springMVC的说明

        2.1 springMVC的作用

                springMVC是基于MVC设计模式实现的一款优秀框架。现在基于SSM框架的应用越来越广泛,分层来达到代码的解耦,以提高代码的复用性以及降低代码的耦合,便于后期的维护和问题的定位。

3. Spring的的作用

        spring我们在SSM的整合时主要用来解决业务层Service,一般用来处理业务的逻辑,处理完业务后会调用mpper(mybatis层的接口),进入mybatis层。例如:

public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public List getAll() {
        return userMapper.selectList(null);
    }

    @Override
    public void deleteByID(Integer id) {
        userMapper.deleteByID(id);
    }

    @Override
    public void updateByID(User user) {
        System.out.println(user);
        userMapper.updateByID(user);
    }
}

4.mybatis的作用

        我们做项目时,一般用mybatis来与数据库交互,用于数据的增删改查。我们一般通过spring的DI注入将mapper注入到spring层,我们仅仅只是在spring层调用mpper的接口,然后通过mpper.xml来匹配对应的增删改查操作。例如:



    
        id,name,age,sex
    

    
        delete from demo_user
        
            id=#{id}
        
    


    
        update demo_user
        
            id=#{id},
            name=#{name},
            age=#{age},
            sex=#{sex},
        
        
            id=#{id}
        

    

通过mapper的namespace 来扫描到对应的接口,然后方法名匹配具体的id 如:

 id="updateByID"来匹配具体的增删改查操作。

下面我们通过具体的操作来整合springBoot+SSM

一、创建项目的目录

整合springBoot+SSM及框架说明_第1张图片

 二、pom文件引入jar包



    4.0.0

    com.jt
    springboot_demo4_MVC
    1.0-SNAPSHOT
    
        org.springframework.boot
        spring-boot-starter-parent
        2.5.2
        
    

    
        1.8
        
        true
    

    
    
        
            org.springframework.boot
            
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
        
            org.springframework.boot
            spring-boot-devtools
        

        
        
            org.projectlombok
            lombok
        

        
        
            mysql
            mysql-connector-java
            runtime
        
        
            mysql
            mysql-connector-java
            8.0.25
        

        

        
        
        
        
        
        
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.4.3.1
        

        
            org.projectlombok
            lombok
        

    

    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                2.5.2
            
        
    

注意:由于我这里用的是mybatis-plus 所以引入的是mybatis-plus的jar包 ,由于它是mybatis的增强版 不影响mybatis的原有功能,大家可以用MP的jar包,也可以换成标准的mybatis的jar包。

三、配置yml文件,配置数据源及端口

server:
  port: 8090

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    password: root
    #如果数据库密码以数字0开头 则必须使用""号包裹
    #password: "01234"
    thymeleaf:
      #设置页面前缀
      prefix: classpath:/webDemo/
      #设置页面后缀
      suffix: .html
      #是否使用缓存
      cache: false

#SpringBoot整合Mybatis配置
mybatis-plus:
  type-aliases-package: com.jt.pojo
  mapper-locations: classpath:/mybatis/*.xml
  configuration:
    map-underscore-to-camel-case: true
  #  log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#Mapper 接口执行  打印sql语句
logging:
  level:
    com.jt.mapper: debug

 由于我这里的8080端口被占用,所以修改了端口号

四、创建pojo类

package com.jt.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

@Data
@Accessors(chain = true)
@TableName("demo_user")
public class User implements Serializable {
    @TableId(type = IdType.AUTO)
    private Integer id;
    private  String name;
    private Integer age;
    private String sex;
}

五、创建启动类用来启动服务

package com.jt;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.jt.mapper")
public class RunApp {
    public static void main(String[] args) {
        SpringApplication.run(RunApp.class, args);
    }
}

六、创建service接口

package com.jt.service;

import com.jt.pojo.User;

import java.util.List;

public interface UserService {
    List getAll();
    void deleteByID(Integer id);
    void updateByID(User user);
}

七、创建service的实现类

package com.jt.service;


import com.jt.mapper.UserMapper;
import com.jt.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public List getAll() {
        return userMapper.selectList(null);
    }

    @Override
    public void deleteByID(Integer id) {
        userMapper.deleteByID(id);
    }

    @Override
    public void updateByID(User user) {
        System.out.println(user);
        userMapper.updateByID(user);
    }
}

八、创建UserMapper.xml





    
        id,name,age,sex
    

    
        delete from demo_user
        
            id=#{id}
        
    


    
        update demo_user
        
            id=#{id},
            name=#{name},
            age=#{age},
            sex=#{sex},
        
        
            id=#{id}
        

    

九、创建mapper接口

package com.jt.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import com.jt.pojo.User;

public interface UserMapper extends BaseMapper {
    void deleteByID(Integer id);
    void updateByID(User user);
}

十、创建UserController

package com.jt.controller;

import com.jt.pojo.User;
import com.jt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;



import java.util.List;

@RestController
@CrossOrigin
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping("/getAll")
    public List getAll(){

        return userService.getAll();
    }
    @RequestMapping("/deleteByID")
    public void deleteByID(Integer id){
        userService.deleteByID(id);
    }
    @RequestMapping("/updateByID")
   public void updateByID(User user){
        System.out.println(user);
       userService.updateByID(user);
    }
}

十一、创建页面



	
		
		用户的列表demo
		
		
	
	
		
			

用户的列表

编号 姓名 年龄 性别 操作
$(function(){

	var url = "http://localhost:8090/getAll"
	
	$.get(url,function(data){
	
		for(var user of data){
			var tr=`
						${user.id}
						${user.name}
						${user.age}
						${user.sex}
						
							
							
						
					`
			$("#tab").append(tr)
			
		}
	})		
})

function deleteByID(id){
		$.ajax({
			type:"get",
			url:"http://localhost:8090/deleteByID",
			data:{id:id},
			success:function(data){
				alert("删除成功");
			},
			error:function(data){
				alert("删除失败或者数据不存在")
			}
		})
	}

function updateByID(id){
	 location.href="update.html"
	 
	 $.ajax({
	 	type:"get",
	 	url:"http://localhost:8090/updateByID",
	 	data:{id:id},
	 	success:function(data){
	 		alert("修改成功");
	 	},
	 	error:function(data){
	 		alert("修改失败")
	 	}
	 })
}

十二. 页面结果

整合springBoot+SSM及框架说明_第2张图片

十三.关于springboot+SSM整合的说明

        新手在入门springboot+SSM时,难点在于不知道如何将这几个框架的流程走通,也不知道如何将业务以怎样的逻辑结构呈现出来.所以给大家写了一个入门案例.从前端的请求到后端的响应,再到结果的返回.

        我们首先要明白,当页面发起请求时,已经规定好了访问的形式如:

整合springBoot+SSM及框架说明_第3张图片

 url当中getAll规定了访问的方法(controller当中的方法),然后通过层层调用 到mybatis持久化数据,最后再将数据层层返回,最后渲染返回给页面.

整合springBoot+SSM及框架说明_第4张图片

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