文章目录
一. 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
- main
-
注: 在开发中会使用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 + "]";
}
}