diff --git a/README.md b/README.md index 76ca3c5..ce875b5 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,8 @@ JavaLib,是一个Java开发基础工具类库,对项目开发中常用的工 * 消息引擎 +* aop模块 + ### 目录结构 @@ -60,6 +62,8 @@ JavaLib │ │ └──com │ │ └── fengwenyi │ │ └── javalib +│ │ ├── aop +│ │ │ └── LBaseWebLogAspect │ │ ├── handler │ │ │ ├── Handler // handler │ │ │ └── HandlerRegister // handler注册 @@ -70,6 +74,9 @@ JavaLib │ │ ├── messageengine │ │ │ └── CommonMessage // 通用消息组件 │ │ ├── result +│ │ │ ├── DefaultResult +│ │ │ ├── DefaultReturnCode +│ │ │ ├── ResultResponseUtil │ │ │ ├── IReturnCode // 返回码接口 │ │ │ └── Result // Result │ │ └── util @@ -112,32 +119,11 @@ JavaLib | --- | ---| | ArtifactId| JavaLib| -**`中央仓库`** - -```xml - - com.fengwenyi - JavaLib - 0.0.9 - -``` +**`仓库`** -**`jitpack`** - -```xml - - - jitpack.io - https://jitpack.io - - - - - com.github.fengwenyi - JavaLib - 1.0.1-RELEASE - -``` +[中央仓库](https://search.maven.org/search?q=g:com.fengwenyi%20AND%20a:JavaLib&core=gav) +| +[JitPack](https://jitpack.io/#fengwenyi/JavaLib) ### API @@ -158,7 +144,7 @@ JavaLib ### Licensed ``` - Copyright 2017-2018 Wenyi Feng(xfsy_2015@163.com) + Copyright 2017-2018 Wenyi Feng(xfsy2014@gmail.com) Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/pom.xml b/pom.xml index d8f62c1..634360f 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.fengwenyi JavaLib - 1.0.2-RELEASE + 1.0.2.RELEASE org.sonatype.oss @@ -44,7 +44,6 @@ 1.7.25 - diff --git a/src/main/java/com/fengwenyi/javalib/aop/DefaultWebLogAspect.java b/src/main/java/com/fengwenyi/javalib/aop/DefaultWebLogAspect.java index b9d6491..84848df 100644 --- a/src/main/java/com/fengwenyi/javalib/aop/DefaultWebLogAspect.java +++ b/src/main/java/com/fengwenyi/javalib/aop/DefaultWebLogAspect.java @@ -1,22 +1,21 @@ -package com.fengwenyi.javalib.aop; - -import org.aspectj.lang.JoinPoint; - -/** - * 实现示例 - * - * @author Wenyi Feng - * @since 2018-08-30 - */ -public class DefaultWebLogAspect extends LBaseWebLogAspect { - - @Override - public void doBefor(JoinPoint joinPoint) throws Exception { - //super.doBefor(joinPoint, request); - } - - @Override - public void doAfterReturn(Object ret) throws Exception { - //super.doAfterReturn(ret, request); - } -} +//package com.fengwenyi.javalib.aop; +// +//import org.aspectj.lang.JoinPoint; +// +///** +// * 实现示例 +// * @author Wenyi Feng +// * @since 2018-08-30 +// */ +//public class DefaultWebLogAspect extends LBaseWebLogAspect { +// +// @Override +// public void doBefor(JoinPoint joinPoint) throws Exception { +// //super.doBefor(joinPoint, request); +// } +// +// @Override +// public void doAfterReturn(Object ret) throws Exception { +// //super.doAfterReturn(ret, request); +// } +//} diff --git a/src/main/java/com/fengwenyi/javalib/aop/LBaseWebLogAspect.java b/src/main/java/com/fengwenyi/javalib/aop/LBaseWebLogAspect.java index 982c339..8e23b12 100644 --- a/src/main/java/com/fengwenyi/javalib/aop/LBaseWebLogAspect.java +++ b/src/main/java/com/fengwenyi/javalib/aop/LBaseWebLogAspect.java @@ -12,9 +12,13 @@ import java.util.Set; /** - * web请求aop切面 + *

+ * web请求aop切面 + *

* - * 通过日志记录web请求以及方法请求处理的一些细节 + *

+ * 通过日志记录web请求以及方法请求处理的一些细节 + *

* * @author Wenyi Feng * @since 2018-08-30 @@ -24,25 +28,33 @@ public abstract class LBaseWebLogAspect { /** * 继承类可以直接使用 - * + * 关于log变量的定义问题及更多细节,可以参考doc中的数码 */ //protected final Logger log = LoggerFactory.getLogger(this.getClass()); protected static final Logger log = LoggerFactory.getLogger(LBaseWebLogAspect.class); - // 记录方法处理消耗的时间(纳秒) - private long startTime = 0L, endTime = 0L, time = 0L; + /** 记录方法处理消耗的时间(纳秒) */ + private long startTime = 0L; - // 需要去实现(进入方法前) + /** + * 需要去实现(进入方法前) + * @param joinPoint 切点 + * @throws Exception 异常 + */ public abstract void doBefor(JoinPoint joinPoint) throws Exception; - // 需要实现(返回后) + /** + * 需要实现(返回后) + * @param ret 返回的数据 + * @throws Exception 异常 + */ public abstract void doAfterReturn(Object ret) throws Exception; /** - * - * @param joinPoint - * @param request 为了完全不侵入你的代码,所以我能帮你拿到request,但是,你很容易,所以,我选择交给你获取 - * @throws Exception + * 进入方法之前 + * @param joinPoint 切点 + * @param request 为了完全不侵入你的代码,所以我很难帮你拿到request,但是,你很容易,所以,我选择交给你获取 + * @throws Exception 异常 */ public void doBefore(JoinPoint joinPoint, HttpServletRequest request) throws Exception { @@ -72,7 +84,7 @@ public void doBefore(JoinPoint joinPoint, HttpServletRequest request) throws Exc //------------------------------------------------------------ - log.info("∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧∧"); + log.info("<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"); log.info("request ip:{}", ip); log.info("request url:{}", url); @@ -84,21 +96,23 @@ public void doBefore(JoinPoint joinPoint, HttpServletRequest request) throws Exc } /** - * - * @param ret - * @param request - * @throws Exception + * 结束方法访问 + * @param ret 返回数据 + * @param request 切点 + * @throws Exception 异常 */ public void doAfterReturning(Object ret, HttpServletRequest request) throws Exception { // log.info("return data:{}", ret); - endTime = System.nanoTime(); - time = endTime - startTime; + long endTime = System.nanoTime(); + + /** 单位:纳秒 */ + long time = endTime - startTime; log.info("time spead:{} (ns)", time); - log.info("∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨∨"); + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); } } diff --git a/src/main/java/com/fengwenyi/javalib/result/DefaultResult.java b/src/main/java/com/fengwenyi/javalib/result/DefaultResult.java index 392a977..a8e629d 100644 --- a/src/main/java/com/fengwenyi/javalib/result/DefaultResult.java +++ b/src/main/java/com/fengwenyi/javalib/result/DefaultResult.java @@ -16,8 +16,23 @@ * @since 2018-08-28 */ @Data -public class DefaultResult extends Result { +public class DefaultResult extends Result { + /** 返回结果属性(成功[true]/失败[false])标志 */ private Boolean success; + /** + * DefaultResult toString + * @return DefaultResult extends Result + * 如果没有这个方法,你可能打印不出想要的数据 + */ + @Override + public String toString() { + return "DefaultResult{" + + "code=" + this.getCode() + + " success=" + this.getSuccess() + + " msg=" + this.getMsg() + + " data=" + this.getData() + + "}"; + } } diff --git a/src/main/java/com/fengwenyi/javalib/result/DefaultReturnCode.java b/src/main/java/com/fengwenyi/javalib/result/DefaultReturnCode.java index 920b6d1..97a686e 100644 --- a/src/main/java/com/fengwenyi/javalib/result/DefaultReturnCode.java +++ b/src/main/java/com/fengwenyi/javalib/result/DefaultReturnCode.java @@ -3,9 +3,13 @@ import lombok.Getter; /** - * 默认返回码 + *

+ * 默认返回码 + *

* - * 这是一个使用IReturnCode写的示例,也是提供默认使用的 + *

+ * 这是一个使用IReturnCode写的示例,也是提供默认使用的 + *

* * @author Wenyi Feng * @since 2018-08-27 @@ -13,25 +17,28 @@ @Getter public enum DefaultReturnCode implements IReturnCode { - //-1 + /** 初始化 */ ERROR_INIT(-1, "init..."), - // 500 - //ERROR_500(500, "(Error)程序出错"), + /** 系统内部错误 */ + ERROR_500(500, "(Error)程序出错"), + /** 成功 */ SUCCESS(0, "Success") ; + /** 返回码 */ private Integer code; + /** 描述 */ private String msg; + /** + * 构造方法 + * @param code 返回码 + * @param msg 描述 + */ DefaultReturnCode(Integer code, String msg) { this.code = code; this.msg = msg; } - - public void setReturnCode(Integer code, String msg) { - this.code = code; - this.msg = msg; - } } diff --git a/src/main/java/com/fengwenyi/javalib/result/Result.java b/src/main/java/com/fengwenyi/javalib/result/Result.java index fc2607b..706d5d0 100644 --- a/src/main/java/com/fengwenyi/javalib/result/Result.java +++ b/src/main/java/com/fengwenyi/javalib/result/Result.java @@ -10,7 +10,7 @@ @Data // 无参数构造方法 @NoArgsConstructor -public class Result { +public class Result { /** 返回码 */ private Integer code; @@ -19,8 +19,8 @@ public class Result { private String msg; /** 数据 */ -// private Object data; - private T data; + private Object data; + //private T data; /** * 设置返回码 @@ -35,7 +35,7 @@ public void setResult(IReturnCode iReturnCode) { * @param iReturnCode 自定义枚举类,需要实现或继承IReturnCode * @param data 自定义数据对象 */ - public void setResult(IReturnCode iReturnCode, T data) { + public void setResult(IReturnCode iReturnCode, Object data) { common(iReturnCode); this.data = data; } diff --git a/src/main/java/com/fengwenyi/javalib/result/ResultResponse.java b/src/main/java/com/fengwenyi/javalib/result/ResultResponse.java index 47d7b23..e374af0 100644 --- a/src/main/java/com/fengwenyi/javalib/result/ResultResponse.java +++ b/src/main/java/com/fengwenyi/javalib/result/ResultResponse.java @@ -1,113 +1,78 @@ -package com.fengwenyi.javalib.result; - -/** - * 返回响应工具类 - * - * 采用builder的设计模式为你提供操作 - * - * @author Wenyi Feng - * @since 2018-08-27 - */ -public class ResultResponse extends DefaultResult { - - private ResultResponse() { - - } - - private ResultResponse(Builder builder) { - this(); - this.setCode(builder.code); - this.setSuccess(builder.success); - this.setMsg(builder.msg); - this.setData(builder.data); - } - - public static class Builder { - - private Integer code; - private Boolean success; - private String msg; - private T data; - - public Builder() { - this.code = DefaultReturnCode.ERROR_INIT.getCode(); - this.msg = DefaultReturnCode.ERROR_INIT.getMsg(); - this.success = false; - this.data = (T) ""; - } - - public Builder(Integer code, String msg) { - this(); - this.code = code; - this.msg = msg; - } - - public Builder(Integer code, String msg, T data) { - this(code, msg); - this.data = data; - } - - public Builder(IReturnCode iReturnCode) { - this(iReturnCode.getCode(), iReturnCode.getMsg()); - } - - public Builder(IReturnCode iReturnCode, T data) { - this(iReturnCode); - this.data = data; - } - - public Builder ok() { - this.success = true; - return this; - } - - public Builder error() { - // 有可能你在某一处让 success = true - // 你后面想让success = false, - // 那么你就可以调用该方法 - this.success = false; - return this; - } - - public Builder code(Integer code) { - this.code = code; - return this; - } - - public Builder msg(String msg) { - this.msg = msg; - return this; - } - - public Builder data(T data) { - this.data = data; - return this; - } - - public Builder status(IReturnCode iReturnCode) { - this.code = iReturnCode.getCode(); - this.msg = iReturnCode.getMsg(); - return this; - } - - public ResultResponse builder() { - ResultResponse resultResponse = new ResultResponse<>(this); - - // - - return resultResponse; - } - - public ResultResponse builder(T data) { - ResultResponse resultResponse = new ResultResponse<>(this); - - this.data = data; - - // - - return resultResponse; - } - - } - -} +//package com.fengwenyi.javalib.result; +// +///** +// * 返回响应工具类(失败了) +// * +// * 采用builder的设计模式为你提供操作 +// * +// * @author Wenyi Feng +// * @since 2018-08-27 +// */ +//public class ResultResponse extends DefaultResult { +// +// private ResultResponse() { +// +// } +// +// private ResultResponse(Builder builder) { +// this(); +// this.setCode(builder.code); +// this.setSuccess(builder.success); +// this.setMsg(builder.msg); +// this.setData(builder.data); +// } +// +// public static class Builder { +// +// private Integer code; +// private Boolean success; +// private String msg; +// private T data; +// +// public Builder ok() { +// this.success = true; +// return this; +// } +// +// public Builder error() { +// // 有可能你在某一处让 success = true +// // 你后面想让success = false, +// // 那么你就可以调用该方法 +// this.success = false; +// return this; +// } +// +// public Builder code(Integer code) { +// this.code = code; +// return this; +// } +// +// public Builder msg(String msg) { +// this.msg = msg; +// return this; +// } +// +// public Builder data(T data) { +// this.data = data; +// return this; +// } +// +// public Builder status(IReturnCode iReturnCode) { +// this.code = iReturnCode.getCode(); +// this.msg = iReturnCode.getMsg(); +// return this; +// } +// +// public ResultResponse builder() { +// return new ResultResponse<>(this); +// } +// +// public ResultResponse builder(T data) { +// ResultResponse resultResponse = new ResultResponse<>(this); +// this.data = data; +// return resultResponse; +// } +// +// } +// +//} diff --git a/src/main/java/com/fengwenyi/javalib/result/ResultResponseUtil.java b/src/main/java/com/fengwenyi/javalib/result/ResultResponseUtil.java index fa7d0fe..27a0439 100644 --- a/src/main/java/com/fengwenyi/javalib/result/ResultResponseUtil.java +++ b/src/main/java/com/fengwenyi/javalib/result/ResultResponseUtil.java @@ -1,47 +1,79 @@ package com.fengwenyi.javalib.result; /** - * <类说明> - *

- * <功能详细描述> - * + * 返回工具类 * @author Wenyi Feng * @since 2018-08-28 */ -public class ResultResponseUtil extends DefaultResult { +public class ResultResponseUtil extends DefaultResult { + /** + * 方法使用入口 + * @return 成功 + */ public static ResultResponseUtil ok() { - ResultResponseUtil resultResponseUtil = new ResultResponseUtil<>(); - resultResponseUtil.code(0); + ResultResponseUtil resultResponseUtil = new ResultResponseUtil(); resultResponseUtil.setSuccess(true); return resultResponseUtil; } + /** + * 方法使用入口 + * @return 失败 + */ public static ResultResponseUtil error() { - ResultResponseUtil resultResponseUtil = new ResultResponseUtil<>(); - resultResponseUtil.code(-1); + ResultResponseUtil resultResponseUtil = new ResultResponseUtil(); resultResponseUtil.setSuccess(false); return resultResponseUtil; } + /** + * 设置返回码 + * @param code 返回码 + * @return ResultResponseUtil + */ public ResultResponseUtil code(Integer code) { this.setCode(code); return this; } + /** + * 设置描述信息 + * @param msg 描述 + * @return ResultResponseUtil + */ public ResultResponseUtil msg(String msg) { this.setMsg(msg); return this; } - public ResultResponseUtil data(T data) { - this.setData(data); + /** + * 设置返回状态(返回码,描述) + * @param iReturnCode IReturnCode + * @return ResultResponseUtil + */ + public ResultResponseUtil status(IReturnCode iReturnCode) { + this.setCode(iReturnCode.getCode()); + this.setMsg(iReturnCode.getMsg()); return this; } - public ResultResponseUtil build(T data) { + /** + * 设置返回数据 + * @param data Object + * @return ResultResponseUtil + */ + public ResultResponseUtil data(Object data) { this.setData(data); return this; } + //------------------------------------------------------ + + /** + * 私有,我不想被你new出一个对象来进行调用 + */ + private ResultResponseUtil() { + + } } diff --git a/src/test/java/com/fengwenyi/test/ResultTest.java b/src/test/java/com/fengwenyi/test/ResultTest.java index d022e41..ca30a39 100644 --- a/src/test/java/com/fengwenyi/test/ResultTest.java +++ b/src/test/java/com/fengwenyi/test/ResultTest.java @@ -1,9 +1,8 @@ package com.fengwenyi.test; -import com.fengwenyi.javalib.handler.Handler; +import com.fengwenyi.javalib.result.DefaultReturnCode; import com.fengwenyi.javalib.result.IReturnCode; import com.fengwenyi.javalib.result.Result; -import com.fengwenyi.javalib.result.ResultResponse; import com.fengwenyi.javalib.result.ResultResponseUtil; import com.google.gson.Gson; import org.junit.Test; @@ -71,12 +70,13 @@ public void test3() { } - public Result test4() { + public Result test4() { //return new ResultResponse.Builder().ok().code(0).msg("1234").builder(); //return new ResultResponse.Builder<>().ok().builder(); // return new ResultResponse.Builder().ok().builder(); - return new ResultResponse.Builder().ok().builder(12345L); + //return new ResultResponse.Builder().ok().builder(12345L); //return new ResultResponse.Builder<>().ok().code(110).msg("123").builder(); + return null; } @Test @@ -87,6 +87,54 @@ public void test5() { @Test public void testUtil() { - ResultResponseUtil.ok().msg("").data(123L); + + ResultResponseUtil.ok().data(""); + + ResultResponseUtil.ok(); + + ResultResponseUtil.ok().code(0).msg("Success").data("data"); + + Result result = ResultResponseUtil.ok().code(0).msg("Success"); + System.out.println(result); + ResultResponseUtil.ok().code(0).msg("Success").data("data"); + System.out.println(); + System.out.println(ResultResponseUtil.ok().status(DefaultReturnCode.SUCCESS)); + System.out.println(ResultResponseUtil.ok().status(DefaultReturnCode.SUCCESS).data("data")); + + System.out.println(ResultResponseUtil.error().code(0).msg("Success")); + System.out.println(ResultResponseUtil.error().code(0).msg("Success").data("data")); + System.out.println(ResultResponseUtil.error().status(DefaultReturnCode.SUCCESS)); + System.out.println(new Gson().toJson(ResultResponseUtil.error().status(DefaultReturnCode.SUCCESS).data("data"))); + } + + @Test + public void test6() { + Result result1 = ResultResponseUtil.ok().code(0).msg("Success"); + Result result2 = ResultResponseUtil.ok().code(0).msg("Success").data("data"); + Result result3 = ResultResponseUtil.ok().status(DefaultReturnCode.SUCCESS); + Result result4 = ResultResponseUtil.ok().status(DefaultReturnCode.SUCCESS).data("data"); + + Result result5 = ResultResponseUtil.error().code(-1).msg("Error"); + Result result6 = ResultResponseUtil.error().code(-1).msg("Error").data("data"); + Result result7 = ResultResponseUtil.error().status(DefaultReturnCode.ERROR_INIT); + Result result8 = ResultResponseUtil.error().status(DefaultReturnCode.ERROR_INIT).data("data"); + + System.out.println(result1); + System.out.println(result2); + System.out.println(result3); + System.out.println(result4); + System.out.println(result5); + System.out.println(result6); + System.out.println(result7); + System.out.println(result8); + + System.out.println(new Gson().toJson(result1)); + System.out.println(new Gson().toJson(result2)); + System.out.println(new Gson().toJson(result3)); + System.out.println(new Gson().toJson(result4)); + System.out.println(new Gson().toJson(result5)); + System.out.println(new Gson().toJson(result6)); + System.out.println(new Gson().toJson(result7)); + System.out.println(new Gson().toJson(result8)); } }