slf4j

Java实现AES ECP PKCS5Padding加解密工具类

◇◆丶佛笑我妖孽 提交于 2020-05-01 08:43:07
Java 实现一个 AES/ECB/PKCS5Padding 加解密算法工具类 加密算法: AES 模式: ECB 补码方式: PKCS5Padding <!-- more --> 1. 工具类 import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import org.springframework.util.Base64Utils; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import java.io.BufferedInputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.security.MessageDigest; /** * Created by @author yihui in 19:12 20/1/2. */ @Slf4j public class EncryptUtil { private static final String KEY_ALGORITHM = "AES"; /** * 算法/模式/补码方式 */

SpringBoot 整合 Zookeeper 接入Starring微服务平台

江枫思渺然 提交于 2020-05-01 06:06:59
背景 最近接的一个项目是基于公司产品Starring做的微服务支付平台,纯后台项目,实现三方支付公司和银行接口来完成用户账户扣款,整合成通用支付接口发布给前端调用。 但是扯蛋了,这边前端什么都不想做,只想我们提供一个链接,用户可以选择支付方式进行支付,这样的话相当于咱们又得起一个WEB版的收银台Project。 最近SpringBoot挺流行的,那就单独给起一个H5项目跑几个页面,调用后台的支付接口就完事了,如下? 最终的系统架构成了这样吧,随便画一画,请客官别吐槽。 公司的产品的服务都是发布到Zookeeper注册中心的,结果我们SpringBoot收银台成了直连某个IP端口,要是交易量一起来把直连的12001压垮了怎么办? 这样显然会存在问题,就因为一个收银台项目把整个微服务支付平台变成了单节点,所以我们收银台SpringBoot项目也必须连到上面的ZK中去查找平台服务。 环境 SpringBoot 2.2.1.Release 解决思路 从单web项目转成基于zookeeper调用的微服务项目: 1、Registry:服务注册,公司产品Starring 采取Zookeeper 作为我们的注册中心,我们现在要做的就是订阅服务。 2、Provider:服务提供者(生产者),提供具体的服务实现,这个是支付后台提供的服务。 3、Consumer:消费者,从注册中心中订阅服务

Springboot21 整合redis、利用redis实现消息队列

ぐ巨炮叔叔 提交于 2020-05-01 04:26:15
1 前提准备   1.1 创建一个springboot项目     技巧01:本博文基于springboot2.0创建   1.2 安装redis     1.2.1 linux版本        参考博文     1.2.2 windows版本       到redis官网下载windows版本的 压缩包 后,解压即可   1.3 redis使用     本博文以window版本为例子, linux版本请参见     1.3.1 开启服务端       》进入到解压后的redis根目录         》执行 redis-server.exe     1.3.2 开启客户端       进入到redis解压目录 -> 执行 redis-cli.exe     1.3.3 测试redis服务端和客户端的通信       在redis客户端执行 ping,如果返回了 PONG 就表明redis前后端通信正常     1.3.4 关闭       客户端和服务端都用 Ctrl + C 就可以关闭了 2 SpringBoot 集成 Redis   2.1 创建一个SpringBoot项目     技巧01:创建时引入 spring-boot-starter-web 和 spring-boot-starter-data-redis <? xml version="1.0" encoding

RabbitMq 发送消息时,同时接受返回数据

佐手、 提交于 2020-04-30 23:13:55
生产者代码,注意要设在将返回数据放入的队列; 通过这种方式可以实现同步阻塞,从而得到返回数据 package com.boot.springbootnew.component; import com.alibaba.fastjson.JSON; import com.boot.springbootnew.config.ReturnComponent; import com.boot.springbootnew.pojo.MqFailLog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageProperties; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.support.CorrelationData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework

Spring Boot 入门(十二):报表导出,对比poi、jxl和esayExcel的效率

ⅰ亾dé卋堺 提交于 2020-04-30 22:02:10
本片博客是紧接着 Spring Boot 入门(十一):集成 WebSocket, 实时显示系统日志 写的 关于poi、jxl和esayExcel的介绍自行百度。 jxl最多支持03版excel,所以单个sheet页面最多只能导出65536条数据。 我直接将excel导入到浏览器并打开,以下统计导出时长指将数据从数据库查询,并写入到excel的过程。不包括打开excel所消耗的时间 为了接近真实场景,我建了一个表,一共有32个字段,其中2个id:一个自增长、一个UUID,10个int型字段,10个String字段,10个datatime字段;导出的excel包含了32个字段 我每次导出一个excel后,直接将jvm的内存清空,再进行下一个excel的导出,保证导出excel不受其它线程的影响 我只是为了比较性能,所以没有对excel的样式进行过多的渲染 poi方式,我使用的是刷新硬盘的方式,数据量大于设置的值,就将内存中的数据刷新到硬盘,降低OOM的概率,同时也增加了导出效率 1.pom依赖 以下是poi、jxl和esayExcel的全部依赖 1 <!-- begin poi --> 2 < dependency > 3 < groupId > org.apache.poi </ groupId > 4 < artifactId > poi </ artifactId > 5 <

Spring boot启动失败,提示找不到类:java.lang.NoClassDefFoundError: org/springframework/aop/framework/AopProxy...

一个人想着一个人 提交于 2020-04-30 13:47:21
  详细报错日志如下: D:\Dev\Java\jdk1.8.0_102\bin\java.exe -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-javaagent:D:\Dev\IntelliJ IDEA 2018.3.5\lib\idea_rt.jar=49426:D:\Dev\IntelliJ IDEA 2018.3.5\bin" -Dfile.encoding=UTF-8 -classpath D:\Dev\Java\jdk1.8.0_102\jre\lib\charsets.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\deploy.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\access-bridge-64.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\cldrdata.jar;D:\Dev\Java\jdk1.8.0_102\jre\lib\ext\dnsns

sping boot集成okhttp实现websocket客户端实例

前提是你 提交于 2020-04-30 13:12:52
  关于websocket服务端的实现网上比较多,比较流行的是spring boot本身的spring-boot-starter-websocket,至于客户端的话,目前流行的是java-websocket框架,这里拿okhttp框架举个例子说说:   1、引入okhttp: < dependency > < groupId > com.squareup.okhttp3 </ groupId > < artifactId > okhttp </ artifactId > < version > 4.2.2 </ version > </ dependency >     2、主要实现类继承websocket监听器: package com.wlf.ws; import com.alibaba.fastjson.JSONObject; import com.wlf.entity.WSResponse; import lombok.extern.slf4j.Slf4j; import okhttp3.Response; import okhttp3.WebSocket; import okhttp3.WebSocketListener; import okio.ByteString; import java.io.IOException; @Slf4j public class

How masking of sensitive data is achieved using slf4j framework?

泪湿孤枕 提交于 2020-04-30 07:24:21
问题 I wanted to mask the sensitive data like username/password using an slf4j framework. Immediate help is appreciated. Thanks in advance. 回答1: Assuming you're using Java/Groovy. In your log4j2.xml, add something like: <PatternLayout pattern="%mm"/> then take that pattern and create a converter for it: @Plugin(name = 'maskLog', category = 'Converter') @ConverterKeys(['mm']) class MaskLogConverter extends LogEventPatternConverter { private static final String NAME = 'mm' private MaskLogConverter

How masking of sensitive data is achieved using slf4j framework?

て烟熏妆下的殇ゞ 提交于 2020-04-30 07:23:19
问题 I wanted to mask the sensitive data like username/password using an slf4j framework. Immediate help is appreciated. Thanks in advance. 回答1: Assuming you're using Java/Groovy. In your log4j2.xml, add something like: <PatternLayout pattern="%mm"/> then take that pattern and create a converter for it: @Plugin(name = 'maskLog', category = 'Converter') @ConverterKeys(['mm']) class MaskLogConverter extends LogEventPatternConverter { private static final String NAME = 'mm' private MaskLogConverter

How masking of sensitive data is achieved using slf4j framework?

蓝咒 提交于 2020-04-30 07:21:18
问题 I wanted to mask the sensitive data like username/password using an slf4j framework. Immediate help is appreciated. Thanks in advance. 回答1: Assuming you're using Java/Groovy. In your log4j2.xml, add something like: <PatternLayout pattern="%mm"/> then take that pattern and create a converter for it: @Plugin(name = 'maskLog', category = 'Converter') @ConverterKeys(['mm']) class MaskLogConverter extends LogEventPatternConverter { private static final String NAME = 'mm' private MaskLogConverter