统一结果处理和业务异常包装

完全处理后的controller @RestController @DefaultEx(TestException.class) public class TestController{ @GetMapping @UnknownEx("test1 exception") public String test(String arg) { if(StringUtils.isEmpty(arg)){ throw new TestException("参数arg不能为空"); }

maven profile

简介 maven profile插件可以根据环境参数,系统os,文件是否存在,和JDK版本等条件决定是否激活配置。激活的配置可以是环境参数的赋值,对应版

通过request获取客户端IP

请求头枚举类 public enum HttpHeader { AUTHORIZATION("Authorization"), AUTHENTICATION_TYPE_BASIC("Basic"), X_AUTH_TOKEN("X-AUTH-TOKEN"), WWW_Authenticate("WWW-Authenticate"), X_FORWARDED_FOR("X-Forwarded-For"), PROXY_CLIENT_IP("Proxy-Client-IP"), WL_PROXY_CLIENT_IP("WL-Proxy-Client-IP"), HTTP_CLIENT_IP("HTTP_CLIENT_IP"), HTTP_X_FORWARDED_FOR("HTTP_X_FORWARDED_FOR"); private String key; private HttpHeader(String key) { this.key = key; } public String key() { return this.key; } } 工具类 public class RemoteIpHelper { private static final String UNKNOWN = "unknown"; public static String getRemoteIpFrom(HttpServletRequest request) { String ip = null; int tryCount = 1; while (!isIpFound(ip) && tryCount

Maven release

简介 Maven release不在maven默认生命周期内,需要通过plugin来实现。Maven release可以自动管理pom.xml中的版本号,

Mysql批量更新

多个where条件,每个条件对应的更新值不同,需要mysql批量更新 UPDATE test_table SET test_target = test_id CASE WHEN "123" THEN "456" WHEN "789" THEN "101" END WHERE test_id in ['123','789'] 但是在程序中,直接写常量的情况太