SpringBoot笔记

  1. 使用SpringBoot不需要再进行框架的繁琐的配置,不是新技术,是对前面学的框架的整合,约定大于配置,选配好到底要创建什么项目,SpringBoot自己帮我们添加好配置

  2. 在前后端单独开发的业务中,为了规范化数据,约定了前后端交互的规则是json数据,后台拿取到前端传过来的参数时需要使用@RequestBody注解进行解析json数据,如果这个数据是个类对象,会直接通过反射机制转换为该类对象,后端返回给前端的数据也是json数据格式,前端也会进行解析,这个json数据有规范化的数据格式,每个项目可以对数据格式进行定制化,虽然在开发阶段前后端不进行数据的交互,但是也要通过相应的调试工具对代码的正确性进行调试,借助一些插件来实现
    在这里插入图片描述在这里插入图片描述

  3. SpringBoot自己带有体量小,运行效率高的tomcat,直接点击运行就能在tomcat服务器上运行

IDEA中创建SpringBoot项目

  1. 在Idea中创建SpringBoot项目选择jar版本的时候,选择8,对应的就是java1.8版本,如果选择maven pom不会帮我们创建文件夹,需要自己手动创建,maven project就会自动帮我们创建
  2. 在pom.xml文件中添加mysql数据库的驱动
<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.29</version>
        </dependency>
  1. Mybatis相关配置属性
    application.properties和application.yml是一样的,只保留一个就行,但是这俩配置文件也是可以并存的,最好是只留一个,两个配置文件的使用是差不多的,只是文件中的数据格式不一样,yml文件更推荐一些,更简单高效,父属性不用重复写在这里插入图片描述在这里插入图片描述
server:
  port: 8888
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/iss-hsu?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: lcf2773743863a
mybatis:
  mapper-locations: classpath:/mapper/*Dao.xml
  type-aliases-package: com.ysu.domain
  1. 容器启动之初,开启扫描器对dao件夹中的接口进行扫描,创建相应的实现类@MapperScan(“com.ysu.dao”)
    在这里插入图片描述
  2. 只有控制层的代码需要重写,后面的model、service、dao直接沿用之前自己搭建的SSM的代码
    重写之前的登录控制层代码:
package com.ysu.api.controller;
import com.ysu.api.constant.CResultType;
import com.ysu.api.domain.Result;
import com.ysu.api.domain.User;
import com.ysu.api.model.ILoginModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController   //等同于Controller+ResponseBody
@RequestMapping("/api")
public class LoginController
{
    @Autowired
    private ILoginModel model;

    @RequestMapping("/login")
    public Result<Boolean> doLogin(@RequestBody User user)
    {
        boolean loginState =model.verifyLogin(user);
        int resultType= CResultType.FAIL;
        String msg="登录失败";
        if(loginState)
        {
            resultType=CResultType.SUCCESS;
            msg="登录成功";
        }
        return new Result<Boolean>(resultType,msg,loginState);
    }
}

重写注册控制层的代码:

package com.ysu.api.controller;

import com.ysu.api.constant.CResultType;
import com.ysu.api.domain.Result;
import com.ysu.api.domain.User;
import com.ysu.api.model.IRegisterModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController  //这个就可以返回页面或者数据
@RequestMapping("/api")
public class RegisterController
{
    //注入model依赖
    @Autowired
    private IRegisterModel model;
    @RequestMapping("/register")
    public Result<Boolean> doRegister(@RequestBody User newUser)
    {
        boolean registerState = model.verifyRegister(newUser);
        int resultType= CResultType.FAIL;
        String msg="注册失败";
        if(registerState)
        {
            resultType=CResultType.SUCCESS;
            msg="注册成功";
        }
        return new Result<Boolean>(resultType,msg,registerState);
    }
    @RequestMapping("/doVerifySameName")
    @ResponseBody   //声明当前接口可以返回数据
    //这块儿形参接收的只能是json数据,哪怕是想直接传一个字符串也需要以json数据的形式传过来,
    //可以用Map来进行接收,就不需要单独写实体类了
    private Result<Boolean> doSameName(@RequestBody Map<String, String> data)
    {
        Map<String,String> map =data;
        boolean registerState = "admin".equals(data.get("username"));
        int resultType= CResultType.SUCCESS;
        String msg="用户不存在";
        if(registerState)
        {
            resultType=CResultType.FAIL;
            msg="用户已存在";
        }
        return new Result<Boolean>(resultType,msg,registerState);
    }
}

注意:@RequestBody User newUser进行数据的反射时,是与实体User类中的setter方法进行反射,要保证setter方法正确且存在

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值