- 实现环境搭建
- 初步实现登录功能
目录
问题1:springboot的静态资源映射问题
下图的backend与front存放静态资源,已知springboot的静态资源映射地址为
1.classpth:/static/
2.classpth:/public/
3.classpth:/resource/
4.classpath:/META-INF/resources
解决办法
1、配置类
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
// 静态资源映射
registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");
super.addResourceHandlers(registry);
}
}
2、配置文件
spring:
application:
name: reggie
datasource:
druid:
password: HIMEHINA
url: jdbc:mysql://localhost:3306/Reggie
username: root
driver-class-name: com.mysql.cj.jdbc.Driver
web:
resources:
static-locations: classpath:/front/,classpath:/backend/
mvc:
static-path-pattern: /backend/**
注意: 配置类可指定多个静态文件映射地址,而配置文件的static-path-pattern只能指定一个
配置类会覆盖配置文件的静态文件的static-path-pattern
问题2:后端返回的统一数据形式如何编写
般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容
代码对比
public class Result {
private int code;
private Object data;
private String msg;
public Result(){}
public Result(int code, Object data) {
this.code = code;
this.data = data;
}
public Result(int code, String msg) {
this.code = code;
this.msg = msg;
}
}
--------------------------------------------------------------------------
public class R<T> {
private Integer code; //编码:1成功,0和其它数字为失败
private String msg; //错误信息
private T data; //数据
private Map map = new HashMap(); //动态数据
public static <T> R<T> success(T object) {
R<T> r = new R<T>();
r.data = object;
r.code = 1;
return r;
}
public static <T> R<T> error(String msg) {
R r = new R();
r.msg = msg;
r.code = 0;
return r;
}
public R<T> add(String key, Object value) {
this.map.put(key, value);
return this;
}
}
下面这种方式的优点:
1、泛型提高了通用性(虽然我认为与直接使用Object差不多)
2、通过静态方法来返回结果,提高了代码的可重用性