Skip to content

Commit

Permalink
统一结果返回对象 修复线程安全问题
Browse files Browse the repository at this point in the history
  • Loading branch information
chenkuifang committed Apr 1, 2020
1 parent b2b084d commit 3162c44
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 269 deletions.
4 changes: 0 additions & 4 deletions src/main/java/com/example/demo/MyApplication.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
package com.example.demo;

import com.example.demo.filter.XssFilter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.data.redis.core.StringRedisTemplate;

@SpringBootApplication
//@EnableScheduling 开启spring任务调度
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/example/demo/aop/RequestLimitAspect.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import org.aspectj.lang.annotation.Before;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
Expand All @@ -28,6 +29,7 @@
@Aspect
@Component
@Slf4j
@EnableAspectJAutoProxy
public class RequestLimitAspect {
private Map<String, Integer> redisTemplate = new HashMap<>();

Expand Down
37 changes: 0 additions & 37 deletions src/main/java/com/example/demo/common/JsonResult.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
public final class JsonResult implements Serializable {

private static final long serialVersionUID = -4908915966053299827L;
private static JsonResult resultBean = null;
private static List<?> list = new ArrayList<>();
/**
* 编码
*/
Expand All @@ -41,39 +39,4 @@ public final class JsonResult implements Serializable {
*/
private List<?> data;

/***
* 获取单例(双重检查锁定) 懒汉单例
*
* @return
*/
public static JsonResult getInstance() {
if (resultBean == null) {
synchronized (JsonResult.class) {
if (resultBean == null) {
resultBean = new JsonResult();
}
}
}

initList();

return resultBean;
}

/**
* 初始化对象
*/
private static void initList() {
if (list == null) {
list = new ArrayList<>();
} else {
list.clear();
}
// resultBean.setCode("");
// resultBean.setMsg("");
// resultBean.setCount(0);
resultBean.setData(list);
}


}
206 changes: 96 additions & 110 deletions src/main/java/com/example/demo/common/util/JsonResultUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,124 +19,110 @@
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class JsonResultUtils {

/**
* 返回普通json结果,只有code和msg属性值,返回:"成功" 或者 "失败"
*
* @param flag
* 判定是否成功的标志, >0 表示成功
* @return
*/
public static JsonResult jsonResult(int flag) {
// 结果返回
if (flag > 0) {
return jsonResult(Constants.SUCCESS_CODE, Constants.SUCCESS_DESCRIPTION);
}
return jsonResult(Constants.FAIL_DESCRIPTION);
}
/**
* 返回普通json结果,只有code和msg属性值,返回:"成功" 或者 "失败"
*
* @param flag 判定是否成功的标志, >0 表示成功
* @return
*/
public static JsonResult jsonResult(int flag) {
// 结果返回
if (flag > 0) {
return jsonResult(Constants.SUCCESS_CODE, Constants.SUCCESS_DESCRIPTION);
}
return jsonResult(Constants.FAIL_DESCRIPTION);
}

/**
* 返回成功数据,有效属性:code,msg,data
*
* @param data
* 数据
* @return
*/
public static JsonResult jsonResult(List<?> data) {
return jsonResult(data, 1);
}
/**
* 返回成功数据,有效属性:code,msg,data
*
* @param data 数据
* @return
*/
public static JsonResult jsonResult(List<?> data) {
return jsonResult(data, 1);
}

/**
* 返回普通json结果,有code,msg,data属性值,
*
* @param data
* 数据
* @param flag
* 判定是否成功的标志, >0 表示成功
* @return 返回:"成功" 或者 "失败" + 数据
*/
public static JsonResult jsonResult(List<?> data, int flag) {
// 结果返回
if (flag > 0) {
return jsonResult(Constants.SUCCESS_CODE, Constants.SUCCESS_DESCRIPTION, data, 0);
}
/**
* 返回普通json结果,有code,msg,data属性值,
*
* @param data 数据
* @param flag 判定是否成功的标志, >0 表示成功
* @return 返回:"成功" 或者 "失败" + 数据
*/
public static JsonResult jsonResult(List<?> data, int flag) {
// 结果返回
if (flag > 0) {
return jsonResult(Constants.SUCCESS_CODE, Constants.SUCCESS_DESCRIPTION, data, 0);
}

return jsonResult(Constants.FAIL_CODE, Constants.FAIL_DESCRIPTION, data, 0);
}
return jsonResult(Constants.FAIL_CODE, Constants.FAIL_DESCRIPTION, data, 0);
}

/**
* 返回错误信息结果,包含有效属性:code,msg
*
* @param msg
* 返回的信息
* @return
*/
public static JsonResult jsonResult(String msg) {
return jsonResultNoData(Constants.FAIL_CODE, msg);
}
/**
* 返回错误信息结果,包含有效属性:code,msg
*
* @param msg 返回的信息
* @return
*/
public static JsonResult jsonResult(String msg) {
return jsonResultNoData(Constants.FAIL_CODE, msg);
}

/**
* 根据参数返回普通json结果,包含有效属性:code,msg
*
* @param code
* 自定义返回编码
* @param msg
* 自定义返回消息
* @return
*/
public static JsonResult jsonResult(String code, String msg) {
return jsonResultNoData(code, msg);
/**
* 根据参数返回普通json结果,包含有效属性:code,msg
*
* @param code 自定义返回编码
* @param msg 自定义返回消息
* @return
*/
public static JsonResult jsonResult(String code, String msg) {
return jsonResultNoData(code, msg);

}
}

/**
* 返回需要翻页的json结果集,包含有效属性:code,msg,data,count
*
* @param data
* 总数据
* @param countPage
* 总页数
* @return
*/
public static JsonResult jsonPageResult(List<?> data, int countPage) {
return jsonResult("0", "ok", data, countPage);
}
/**
* 返回需要翻页的json结果集,包含有效属性:code,msg,data,count
*
* @param data 总数据
* @param countPage 总页数
* @return
*/
public static JsonResult jsonPageResult(List<?> data, int countPage) {
return jsonResult("0", "ok", data, countPage);
}

/**
* 需要数据返回时用(一般供列表使用)
*
* @param code
* 返回码
* @param msg
* 返回消息
* @param data
* 返回数据
* @param countPage
* 返回数据的总数
* @return
*/
private static JsonResult jsonResult(String code, String msg, List<?> data, int countPage) {
JsonResult r = JsonResult.getInstance();
r.setCode(code);
r.setMsg(msg);
r.setCount(countPage);
r.setData(data);
return r;
}
/**
* 需要数据返回时用(一般供列表使用)
*
* @param code 返回码
* @param msg 返回消息
* @param data 返回数据
* @param countPage 返回数据的总数
* @return
*/
private static JsonResult jsonResult(String code, String msg, List<?> data, int countPage) {
//JsonResult r = JsonResult.getInstance();
JsonResult r = new JsonResult();
r.setCode(code);
r.setMsg(msg);
r.setCount(countPage);
r.setData(data);
return r;
}

/**
* 不需要数据返回时用
*
* @param code
* 返回码
* @param msg
* 返回消息
* @return
*/
private static JsonResult jsonResultNoData(String code, String msg) {
JsonResult r = JsonResult.getInstance();
r.setCode(code);
r.setMsg(msg);
return r;
}
/**
* 不需要数据返回时用
*
* @param code 返回码
* @param msg 返回消息
* @return
*/
private static JsonResult jsonResultNoData(String code, String msg) {
JsonResult r = new JsonResult();
r.setCode(code);
r.setMsg(msg);
return r;
}

}
Loading

0 comments on commit 3162c44

Please sign in to comment.