常用代码记录

1.0 获取请求全部数据

   /**
     * 获取 全部参数值
     *
     * @param request
     * @return
     */
    public String getParameters(HttpServletRequest request) {
        Map<String, String[]> params = request.getParameterMap();
        StringBuilder queryString = new StringBuilder();
        for (Map.Entry<String, String[]> k:  params.entrySet())
        {
            for (String value : k.getValue()) {
                queryString.append(k.getKey()).append("=").append(value).append("&");
            }
        }
        // 去掉最后一个空格
        if (!org.springframework.util.StringUtils.isEmpty(queryString.toString()))
            queryString = new StringBuilder(queryString.substring(0, queryString.length() - 1));
        return queryString.toString();
    }

2.0  获取 真实IP 地址

   /**
     * 获取 真实IP 地址
     *
     * @param request
     * @return
     */
    public String getIp2(HttpServletRequest request) {
        String ip = request.getHeader("X-Forwarded-For");
        if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
            // 多次反向代理后会有多个ip值,第一个ip才是真实ip
            int index = ip.indexOf(",");
            if (index != -1) return ip.substring(0, index);
            else return ip;
        }
        ip = request.getHeader("X-Real-IP");
        if (StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)) {
            return ip;
        }
        return request.getRemoteAddr();
    }

3.0  MD5 验证方法

  //   utf-8  转换成小写
    org.apache.commons.codec.digest.DigestUtils.md5Hex(str.getBytes("UTF-8")).replace("-", "").toLowerCase() 

4.0  字符串格式

MessageFormat.format("接收到的数据是 serviceName {0}    data {1}  Parametrs {2}  ",serviceName, data, requestHelp.getParameters(request));

5.0 XML 序列化

 // 序列化
    
        Request re;
        String response;
        try {
            JAXBContext a = JAXBContext.newInstance(com.ls.domain.Request.Request.class);
            StringReader reader = new StringReader(xml);
            re = (Request) a.createUnmarshaller().unmarshal(reader);
        } catch (JAXBException e) {
            LOGGER.error("接收数据序列化异常", e);
            response = "<Response service=”RouteService”><Head>ERR</Head><ERROR code="4002">报文解析错误</ERROR></Response>";
            return ResponseEntity.ok(response);
        }
// 反序列化 public String convertToXml(Object obj, String encoding) { String result = null; try { JAXBContext context = JAXBContext.newInstance(obj.getClass()); Marshaller marshaller = context.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.setProperty(Marshaller.JAXB_ENCODING, encoding); StringWriter writer = new StringWriter(); marshaller.marshal(obj, writer); result = writer.toString(); } catch (Exception e) { LOGGER.error(" 响应数据格式化异常",e); } return result; }

 时间格式

private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = dateFormat.format(new Date());


// 时区问题
Date date = Date.from(LocalDateTime.now().atZone(ZoneId.of("Asia/Shanghai")).toInstant());

关于使用模板引擎输出的问题

StreamingTemplateEngine 

      使用print 输出  

GStringTemplateEngine
  
     使用 out << 输出

建议都用   out << 作为输出字符串方法 

 关于maven 打包上传GITHUB

    

命令:
mvn deploy -DaltDeploymentRepository=atliwen::default::file:/e:/maven/repository/

注意不要动原先的版本文件与MD5等文件

原文地址:https://www.cnblogs.com/atliwen/p/6742098.html