SpringBoot-02-入门

一. idea2022创建SpringBoot项目

1. 创建boot项目

注: 可以进行换源 Server URL
在这里插入图片描述

在这里插入图片描述

2. 修改boot版本和Maven中jdk版本

在这里插入图片描述
在这里插入图片描述

重新加载pom文件

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.7.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
	<java.version>8</java.version>
</properties>

3. 修改运行环境中jdk版本

在这里插入图片描述
在这里插入图片描述

二. SpringBoot简介

  • 敏捷式开发的产物
  • 开箱即用,零配置
  • 基于spring框架的一站式解决方案

三. SpringBoot目录

  • src

    • main
      • java (自动生成启动类,spring所有的开发代码必须位于启动类的同包及以下位置)
      • resources
        • static (放置js,css,images等静态资源)
        • templates (放置视图资源 thyleaf,freemarker,相当于ssm中的jsp)
        • application.properties (boot中唯二的配置文件)
        • bootstrap.properties (boot中唯二的配置文件,优先级高于application.properties)
    • test
      • java
      • resources
  • 注: 在开发中会使用yml文件进行配置,观感更好 (使用插件Convert YAML and Properties File, 右键properties文件时会出现Convert YAML and Properties File选项,点击后properties文件会被转换为yml文件)
    在这里插入图片描述

    logging:
        config: /
        exception-conversion-word: /
    mybatis:
        check-config-location: false
        config-location: /
    server:
        address: /
        port: 80
    

    以上是随意列举

四. 入门案例

1. 使用@SpringBootApplication注解配置默认不加载数据库

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class Testspringboot02Application {

    public static void main(String[] args) {
        SpringApplication.run(Testspringboot02Application.class, args);
    }

}

2. application.properties

# 应用名称
spring.application.name=testspringboot02
# 应用服务 WEB 访问端口
server.port=8081
#下面这些内容是为了让MyBatis映射
#指定Mybatis的Mapper文件
mybatis.mapper-locations=classpath:mappers/*xml
#指定Mybatis的实体目录
mybatis.type-aliases-package=com.zking.testspringboot02.mybatis.entity

yml

mybatis:
    mapper-locations: classpath:mappers/*xml
    type-aliases-package: com.zking.testspringboot02.mybatis.entity
server:
    port: 8081
spring:
    application:
        name: testspringboot02

3. web层

package com.zking.testspringboot02.web;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class IndexController {
    @RequestMapping("/")
    public String index(){
        System.out.println("进入测试....");
        return "index";
    }
}

4. 测试

访问 http://localhost:8081/

进入测试....

在这里插入图片描述

五. 响应封装类

Result.java

package com.zking.testspringboot02.result;

public class Result<T> {
 
    private int code;
    private String msg;
    //因为返回的数据不知道是什么类型,所以定义一个泛型
    private T data;
    private long total;

    public long getTotal() {
        return total;
    }

    public void setTotal(long total) {
        this.total = total;
    }

    /**
     * 成功的时候调用
     */
    public static <T> Result<T> ok(T data) {
        return new Result<T>(data);
    }
    public static <T> Result<T> ok(int code,String msg) {
        return new Result<>(code,msg);
    }
    public static <T> Result<T> ok(int code,String msg,T data) {
        Result<T> success = ok(data);
        success.setCode(code);
        success.setMsg(msg);
        return success;
    }
    public static <T> Result<T> ok(int code,String msg,T data,long total) {
        Result<T> success = ok(code,msg,data);
        success.setTotal(total);
        return success;
    }
 
    /**
     * 失败的时候调用
     */
    public static <T> Result<T> error(CodeMsg codeMsg) {
        return new Result<T>(codeMsg);
    }
 
    private Result(T data) {
        this.data = data;
    }
 
    private Result(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
 
    private Result(CodeMsg codeMsg) {
        if (codeMsg != null) {
            this.code = codeMsg.getCode();
            this.msg = codeMsg.getMsg();
        }
    }
 
    public int getCode() {
        return code;
    }
 
    public void setCode(int code) {
        this.code = code;
    }
 
    public String getMsg() {
        return msg;
    }
 
    public void setMsg(String msg) {
        this.msg = msg;
    }
 
    public T getData() {
        return data;
    }
 
    public void setData(T data) {
        this.data = data;
    }
}

CodeMSG.java

package com.zking.testspringboot02.result;

public class CodeMsg {
 
    private int code;
    private String msg;
 
    //通用的错误码
    public static CodeMsg SUCCESS = new CodeMsg(200, "success");
    public static CodeMsg SERVER_ERROR = new CodeMsg(500, "服务端异常");
    public static CodeMsg BIND_ERROR = new CodeMsg(500101, "参数校验异常:%s");
    public static CodeMsg REQUEST_ILLEGAL = new CodeMsg(500102, "请求非法");
    public static CodeMsg ACCESS_LIMIT_REACHED = new CodeMsg(500104, "访问太频繁!");
    //登录模块5002XX
    public static CodeMsg SESSION_ERROR = new CodeMsg(500210, "Session不存在或者已经失效");
    public static CodeMsg PASSWORD_EMPTY = new CodeMsg(500211, "登录密码不能为空");
    public static CodeMsg MOBILE_EMPTY = new CodeMsg(500212, "手机号不能为空");
    public static CodeMsg MOBILE_ERROR = new CodeMsg(500213, "手机号格式错误");
    public static CodeMsg MOBILE_NOT_EXIST = new CodeMsg(500214, "手机号不存在");
    public static CodeMsg PASSWORD_ERROR = new CodeMsg(500215, "密码错误");
 
    //商品模块5003XX
 
    //订单模块5004XX
    public static CodeMsg ORDER_NOT_EXIST = new CodeMsg(500400, "订单不存在");
 
    //秒杀模块5005XX
    public static CodeMsg MIAO_SHA_OVER = new CodeMsg(500500, "商品已经秒杀完毕");
    public static CodeMsg REPEATE_MIAOSHA = new CodeMsg(500501, "不能重复秒杀");
    public static CodeMsg MIAOSHA_FAIL = new CodeMsg(500502, "秒杀失败");
 
    private CodeMsg() {
    }
 
    private CodeMsg(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
 
    public int getCode() {
        return code;
    }
 
    public void setCode(int code) {
        this.code = code;
    }
 
    public String getMsg() {
        return msg;
    }
 
    public void setMsg(String msg) {
        this.msg = msg;
    }
 
    public CodeMsg fillArgs(Object... args) {
        int code = this.code;
        String message = String.format(this.msg, args);
        return new CodeMsg(code, message);
    }
 
    @Override
    public String toString() {
        return "CodeMsg [code=" + code + ", msg=" + msg + "]";
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值