boot学习基础篇--基于springboot整合ssmp

-1. boot简介

springBoot是Pivotar团队开发的一套全新的框架,不像mybatis-,只是一个插件,其设计目的是用来简化spring应用的初始搭建和开发过程。

spring程序有什么缺点:
依赖配置繁琐(以前的人解决依赖冲突是十分费劲的)
编写配置文件或者说做项目的过程中需要配置的地方是很多的。

boot程序有什么优点:
起步依赖(大大简化了搭建项目的依赖配置,还能有效的避免依赖冲突的出现)
自动配置(将大家基本都一样,每个项目都要的配置都配置好了)
辅助功能(例如内置了一个服务器,…)

学习完这一篇:必须要理解和掌握的就是boot框架整合第三方技术的思路.

0. 认识boot工程

0.1 创建boot工程的几种方法

0.1.1 在idea中使用官方源

0.1.2 使用官方网站生成项目压缩包

0.1.3 使用国内的源"阿里云"

https://start.aliyun.com

0.1.4 手动搭建boot环境

0.2 四个内容

简介中说的那三个优点具体就是由这四个内容实现的

0.2.1 parent

0.2.2 starter

0.2.3 引导类

0.2.4 辅助功能

1. pom.xml

1.1整和第三方的技术boot整合东西

分三块
手动引入该技术相关的stasrter, 并需要指定版本, 最后使用时在boot的配置文件中做组要的配置.

1.2 整合mp

       <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

(作业: 查询mp在boot中可以做那些配置)

1.3 整合druid

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.6</version>
        </dependency>

在这里插入图片描述

# 德鲁伊数据源配置
spring:
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC
      username: root
      password: root

2. properties/yml/yaml

3. dao层

4. dao测试类

5. service层

5.1 业务层的标准开发

service层接口的定义与数据层接口的定义具有较大的差别, 注意做区分
业务层的方法名注重业务名称, 而数据层的方法名注重数据库相关的操作.
举个例子
在这里插入图片描述

5.2 mp帮助业务层快速开发

service层的接口类, 要继承一个指定范型的类
IService<范型>
于是, 大量通用的业务方法, 就不用自己手动写了
全部继承ok
而业务层的实现类需要两步, 第一步自然就是先实现对应的业务接口
第二步就是, 继承一个指定两个范型的类
ServiceImpl<对应的dao层类, 对应的domain类>
这就好了, 业务方法一个没写, 通用的已经全封装好了.
我们只需要为特定的业务写方法的重载或者追加就行了.

6. service测试类

7. controller

7.1 Rest风格

7.1.1 什么是REST

Representation state transitions
表现形式状态转换
说白了, 就是一种全新的访问网络资源的一种方式
例如
传统的访问写法是这样的
http://localhost/user/getById?id=1
http://localhost/user/saveUser
而Rest风格是这样的
http://localhost/user/1
http://localhost/user

优点就出来了
一: 书写简化
二: 隐藏访问行为, 无法通过地址就猜出是对资源进行何种操作

使用rest风格访问资源时需要使用行为动作区分对资源的操作类型
例如
http://localhost/user
如果是GET: 表示查询全部用户信息
如果是POST: 表示添加用户信息
如果是PUT: 表示更新用户信息

http://localhost/user/1
如果是GET: 表示条件查询
如果是DELET: 表示条件删除

请求方式其实不止这四种
springMVC其实没有支持那么多
只支持八种, 常用的就是这四种

也就是说, 通过一个路径和一个请求方式
就可以确定要访问的资源

使用REST风格来访问资源就叫Restful

7.1.2 Restful入门案例

package com.itdong.service.impl;

import com.itdong.domain.User;
import com.itdong.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller
public class UserServiceImpl implements UserService {  //假设都不是页面跳转的业务, 都是回显信息
    @Override
    @RequestMapping(value = "/users",method = RequestMethod.GET)
    @ResponseBody
    public String getAll() {
        return "查询操作";
    }

    @Override
    @RequestMapping(value = "/users/{id}",method = RequestMethod.GET)   //变量名要对应
    @ResponseBody
    public String getById(@PathVariable int id) { //表示参数来自路径变量
        return "查询操作";
    }

    @Override
    @RequestMapping(value = "/users",method = RequestMethod.POST)
    @ResponseBody
    public String save(@RequestBody User user) {    //表示形参来自请求体
        return "保存操作";
    }

    @Override
    @RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)
    @ResponseBody
    public String deleteById(@PathVariable int id) {   //表示参数来自路径变量
        return "删除操作";
    }

    @Override
    @RequestMapping(value = "/users/",method = RequestMethod.PUT)
    @ResponseBody
    public String update(@RequestBody User user) {        //表示方法的参数来自请求体
        return "更新操作";
    }
}

获取请求参数的三个注解小结:
在这里插入图片描述

7.1.3 对以上案例代码重复的地方做简化

以上案例重复的地方有

  1. 每个方法前的/user是大量重复的
    解决方法:
    将@RequestMapping注解提到类上
    这样以来不用在路径中要参数的方法, 可以将@RequestMapping中的value拿掉.而需要路径参数的方法只用写后面的那一段.

  2. 以上的案例我们是假设所有方法都是回显消息, 不是跳转页面,所以
    每个方法前都有 @ResponseBody 这个注解
    解决方法:
    可以将这个注解提上类前
    就可以表示所有方法都是回显消息的方法了
    而springMVC框架中, 如果一个业务POJO满足使用@ResponseBody 这个注解的条件
    可以和@Controller注解合并为一个注解@RestController

  3. 既然@RequestMapping提上类了, 方法中也使用@RequestMapping制定路径参数和访问方式就不太优雅了.
    其实, 方法上现在可以换一个注解
    @方式名Mapping("/路径参数") //该括号内容不一样需要
    这种就看起来就优雅多了, springMVC人家玩得多好~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值