SpringBoot整合SSM

SpringBoot整合SSM,第1张

SpringBoot整合SSM Spring框架

为团队开发,将复杂的框架进行整合,使程序从控制调用浑然一体,以一种统一的方式调用

核心:整合第三方框架

核心机制

    IOC-DI

    @RestController

    控制反转:将其他框架里的对象创建的权力交给sping容器管理,由spring容器管理对象的生命周期

    @Autowired

    依赖注入:创建对象时,对象中有依赖的属性,spring负责属性赋值

    AOP 面向切面编程

SpringMVC

作用:接受用户请求,完成业务处理,返回响应给用户

框架之间调用关系

SpringBootSpring

SpringMVC

Controller:接受前端参数 Spring

Service:对查询数据库后返回数据进行处理 Mybatis

Mapper:查询数据库获取数据 数据处理顺序

用户请求 --> Controller --> Service --> Mapper

​ Controller <-- Service <-- Mapper <-- 数据回传

controller类:

构成

注解

    @RestController :包含两注解

    ​ @Controller 包含@Component,将该类交给Spring容器管理(控制反转)
    ​ @ResponseBody 业务返回值时,将数据转化为JSON

    @GetMapping(“findUserById”):规定访问方式

    @Autowired:依赖注入,动态代理生成接口的实现类,再由此注解生成对象

    @CrossOrigin:解决跨域问题

变量与方法

    private UserService userService;创建一个service接口对象(只有一个实现类,自动使用该实现类实现的方法)

数据接收

SpringMVC框架封装了Servlet,自动将传入数据封装为对应属性、对象、数组

若多个参数使用逗号分割,默认可用数组接收

集合(加@RequestParam)不方便,不用

关联:创建service接口对象

ServiceImpl实现类:

构成

注解

    @Service

将该类交给spring容器管理

@Service中包含@Component,可被controller类创建bean对象

    @Autowired 动态代理生成接口的实现类,再由此注解生成对象

重写的Service接口的方法

关联:继承实现service接口、创建mapper接口对象(JDK动态代理)

mapper接口

注解:

@MapperScan(“cn.jt.mapper”) 包扫描,mapper层文件路径。写在主启动类

写了后就不用在mapper层加@Mapper了

@Insert(“sql”)、@Select("")、@Update("")、@Delete("")注解写简单sql

关联:被service实现类调用、通过mapper.xml调用sql

SpringBoot整合Mybatis

application.yml整合文件

server:
  port: 8090
  servlet:
    context-path: /

#Spring整合 1、数据源   2、mybatis
#serverTimezone=GMT%2B8 指定时区 %2B = + 东八区
#useUnicode=true&characterEncoding=utf8 开启使用unicode编码,指定utf8
#autoReconnect=true 断线是否重新连接
#allowMultiQueries=true 是否允许批量 *** 作
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

mybatis:
  #配置别名
  type-aliases-package: cn.jt.pojo
  #第一个/表示根目录,加载指定xml映射文件
  mapper-locations: classpath:/mybatis/mappers/*.xml
  #开启驼峰映射
  configuration:
    map-underscore-to-camel-case: true

原mybatis-config.xml文件






    
    
        
        
    

    
    
        
        
        
        
    



    
    

        
        
            
            
            
            
                
                
                
                
                
            
        

    

    
    
        
        
    

报错

500:后台服务器异常

bound statement绑定异常:

检查mapper.xml文件的namespace、select中的方法名绑定id检查application.yml中xml映射文件的导入mapper-locations检查application.yml中格式,是否顶格,是否有层级结构检查主启动文件中注解@MapperScan(“cn.jt.mapper”)

JDBC Connection数据库连接异常

检查application.yml中数据库连接配置 SpringMVC参数传递

前端控制器:负责用户请求的接收,后端业务的分发

Servlet(Server Applet)

小服务程序或服务连接器

主要功能在于交互式地浏览和生成数据,生成动态web内容。

Servlet是java后台程序与用户交互的机制(媒介)

参数名称必须相同,请求存入Servlet,在从中取出

传入参数为String类型,需要手动转化 Integer.parseInt(age);

SpringMVC封装了Servlet,实现自动数据转化

参数传递get、post

简单参数传递:

MVC直接取值

对象接收数据:

多个数据,封装为 对象 或 对象+值

不能有同名属性,有同名属性用逗号连接

对象的引用赋值:

参数重名问题 name dog.name user里封装一个dog对象

RestFul参数传递

用户url编辑:

参数用/分割顺序不可随意更改请求路径中不能出现动词:get、set、update,隐藏目的

用户规范

RestFul都是名词,不可区分请求业务逻辑

采用请求类型,严格区分业务需求

GET 查询POST 新增/form表单提交PUT 修改DELETE 删除

参数接受

    @GetMapping("/user/{name}/{id}")
    public Object testRestFul(User user){
        return user;
    }

参数用/分割

参数用{}包裹

@PathVariable(“name”) String name 接收参数

参数名与对象属性名一致,可以对象接收

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5703663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存