SpringBoot学习日记

Spring程序与SpringBoot程序对比

SpringBoot学习日记_第1张图片

 SpringBoot程序优点

  • 起步依赖(简化依赖配置)
  • 自动装配(简化常用工程相关配置)
  • 辅助功能(内置服务器,......)

 内嵌Tomcat

REST风格

REST简介

REST,表现形式状态转化
传统风格资源描述形式:
        http://localhost/user/getById?id=1
        http://localhost/user/saveUser

REST风格描述形式
        http://localhost/user/1
        http://localhost/user

优点:

  • 隐藏资源的访问行为,无法通过地址得知对资源是何种操作
  • 书写简化

按照REST风格访问资源时使用行为动作区分对资源进行了何种操作

  • http://localhost/users                                        查询全部用户信息        GET ( 查询 )
  • http://localhost/users/1                                     查询指定用户信息        GET ( 查询 )
  • http://localhost/users                                        添加用户信息               POST (新增/保存)
  • http://localhost/users                                        修改用户信息               PUT (修改/更新)
  • http://localhost/users/1                                     删除用户信息               DELETE( 删除 )

上述行为是约定方式,约定不是规范,可以打破,所以称REST风格,而不是REST规范

描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源,例如:users,books,accounts......

基础配置

属性配置

1.修改属性

  • 修改服务器端口
    server.port=8081
    
  • 设置日志相关
    logging.level.root=debug
  • 关闭运行日志图标
    spring.main.banner-mode=off

2. yaml语法规则

  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
  • # 表示注释

注意属性名冒号后面与数据之间有一个空格

yaml文件格式icon-default.png?t=N7T8http://xn--yaml-t85fs66fflkpnf

数据层开发

分页功能

分页操作需要设定分页对象Page

    @Test
    void textGetPage(){
        IPage page = new Page(2,5);
        userDao.selectPage(page,null);
    }

IPage对象中封装了分页操作中的所有数据

  • 数据
  • 当前页码值
  • 每页数据总量
  • 最大页码值
  • 数据总量

分页操作时在MyBatisPlus的常规操作基础上增强得到的,内部时动态的SQL语句。因此需要增强对应的功能,使用MyBatisPlus拦截器实现

@Configuration
public class MPConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }
}

业务层开发

快速开发

使用快速开发

  • 使用MyBatisPlus提供有业务层通用接口(ISService)与业务层通用实现类(ServiceImpl
  • 在通用类基础上做功能重载或者功能增加
  • 注意重载时不要覆盖原始操作,避免原始提供的功能丢失

表现层开发

1. 设计统一的返回值结果类型便于前端开发数据
2. 返回值结果类型可以根据需求自行定义,没有固定格式
3. 返回值结果模型类用于后端与前端进行数据格式统一,也称为前后端数据协议

注解学习

名称:@RequestMapping
类型:方法注解
位置:SpringMVC控制器方法定义上方
作用:设置当前控制器方法请求访问路径
范例:

    @RequestMapping(value = "/users",method = RequestMethod.POST)
    public String save(@RequestBody User user){
        System.out.println("user save..."+user);
        return "{'module':'user save'}";
    }

名称:@PathVariable
类型:形参注解
位置:SpringMVC控制器方法形参定义前面
作用:绑定路径参数与处理器方法形参之间的关系,要求路径参数名与形参名一一对应
范例:

    @DeleteMapping("/users/{id}")
    public String delete(@PathVariable Integer id){
        studentMapper.deleteById(id);
        return "删除成功";
    }/*指定id删除用户*/

@RequestBody        @RequestParam        @PatchVariable
区别:

  • @RequestParam 用于接收url地址传参或表单传参
  • @RequestBody 用于接收 json 数据
  • @PatchVariable 用于接收路径参数,使用{参数名称}描述路径参数

应用

  • 后期开发中,发送请求超过1个时,以 json 格式为主,@RequestBody 应用较广
  • 如果发送非 json 格式数据,选用@RequestParam 接收请求参数
  • 采用RESTful进行开发,当参数数量较少时,例如一个,可以采用@PatchVariable 接收请求路径变量,通常用于传递id值

名称:@RestController
类型:类注解
位置:基于SpringMVC的RESTful开发控制器类定义上方
作用:设置当前控制类为RESTful风格,等同于@Controller与@ResponseBody两个注解组合功能
范例:

@RestController
public class StudentController {

}

整合JUnit
名称:@SpringBootText
类型:测试类注解
位置:测试类定义上方
作用:设置JUnit加载的SpringBoot启动类
范例:

@SpringBootTest(classes = Application.class)
class SpringBoot01ApplicationTests {}

相关属性:classes:设置SpringBoot启动类

注意事项:如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的配置,也就是classes的设定

整合MyBatis
1. 核心配置:数据库连接相关信息(练什么?谁连?什么权限)
2. 映射配置:SQL映射(XML/注解)

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: root

SpringBoot学习日记_第2张图片

你可能感兴趣的:(spring,boot,学习,java)