- 博客(202)
- 收藏
- 关注
原创 发邮件(excel附件)
@Autowiredprivate JavaMailSender mailSender;#根据数据创建excelInputStream inputStream = builtExcel(voList);private InputStream builtExcel(List<MonthlyKeywordEmailVO> voList) { //创建工作簿 XSSFWorkbook xssfWorkbook = new XSSFWorkbook(); //创建工作表 XSSFSh.
2022-02-22 16:11:07
249
原创 日志链路追踪
LogInterceptorpackage cn.com.autoax.config;import com.sun.istack.internal.Nullable;import org.slf4j.MDC;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest;import javax.servlet.ht.
2021-08-24 16:31:22
100
原创 @Autowired注解用在接口集合上
//@Autowired注解用在接口的集合上面,所有实现该接口的实现类都会在该集合中@Autowired(required = false)private List<IAsynTask> tasks = Collections.emptyList();
2021-07-20 17:03:42
578
原创 shiro限制单用户并发访问数
https://blog.csdn.net/qq_33556185/article/details/51744004
2021-05-19 17:46:16
138
原创 springboot分环境
//注入 @Autowired private Environment environment; //active默认值 private String active = "dev"; //获取环境中的active(local、dev、test、prod) String[] activeProfiles = environment.getActiveProfiles(); if (activeProfiles!=null &&am...
2021-05-19 17:36:37
148
原创 分环境加参数
分环境参数#resource/dev/config/proxy.propertiesproxy.enabled=falseproxy.hostName=192.168.0.117proxy.port=1080#resource/test/config/proxy.propertiesproxy.enabled=trueproxy.hostName=172.17.75.90proxy.port=3128PropertyUtil类(Properties类加载properties参
2021-05-19 17:06:47
60
原创 shiro漏洞处理
自动生成“记住我”的加密秘钥 <!-- rememberMe管理器 如需要记住功能 可删掉相关配置 --> <bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager"> <!-- rememberMe cookie加密的密钥 建议每个项目都不一样 默认AES算法 密钥长度(128 256 512 位)--> <!--<.
2021-05-19 16:59:52
221
原创 解决sql注入和xss漏洞
WebMvcConfig.javaregistry.addInterceptor(new SqlInjectInterceptor()).addPathPatterns("/**");SqlInjectInterceptor.java@Componentpublic class SqlInjectInterceptor implements HandlerInterceptor{ @Override public void afterCompletion(HttpSer.
2021-05-17 22:00:12
331
原创 json字段
select tem.utsTempCode,json_extract(tem.utsTempCode, "$.view")from adtemplate temwhere tem.templateId=101077select tem.utsTempCode,json_extract(tem.utsTempCode, "$.view")from adtemplate temwhere tem.templateId=101077and json_extract(tem.utsTempCod.
2021-04-27 09:20:17
276
原创 mysql查看进程、变量、状态
Navicat的菜单 “工具”-->"服务器监控"-->MySQL,然后勾选相应数据库,切换到变量参数,找到max_allowed_packet,其默认值是4194304字节,大概4M,
2021-04-14 09:16:23
125
原创 netty学习
netty学习:BIO:accept()、read()、write()是阻塞的NIO:事件机制,一个或几个线程把accept()、read()、write()的活都干了,无事可做也不会死循环Reactor线程模型:单线程模型:多线程模型:主从模型:主线程池listen、accept,dispatch,从线程池read、write,从线程个数可与CPU个数等同TCP粘包拆包:正常包、粘包、半包粘包拆包问题,netty封装了许多类型的拆包器(固定长度、行、分隔符、长度域)netty零拷
2021-03-24 08:05:26
103
原创 socket学习
socket学习:服务端:socket()创建socketbind()绑定到ip端口listen()监听socketaccept()接受请求并建立连接read()write()close()客户端:socket()创建socketconnect()发出连接请求read()write()close()过程:服务端socket(),bind(),listen()客户端connect()服务端accept()tcp三次握手建立连接:服务端socket(),bind(),li
2021-03-24 08:04:30
95
原创 发布ApplicationEventPublisher,监听ApplicationEvent 异步操作
有这么一个业务场景:当用户注册后,发送邮件到其邮箱提示用户进行账号激活,且注册成功的同时需要赠送新人用户体验卡券。业务有了,那么问题也就来了。What? 问题…问题?我听说你有问题? 来拔刀吧,互相伤害啊。考虑以下两个问题:如何注册成功立即发送邮件、赠送体验卡? 如何同时向用户邮箱发送激活邮件、赠送新人客户体验卡,互不影响?如果是微服务项目,该逻辑可结合消息中间件进行处理。若是单机代码,有什么好的办法哇?你还在疯狂的代码逻辑判断吗?若代码高耦合,后期进行维护仿佛并不是那么happy,就不用说
2021-03-10 15:55:42
144
原创 git分支主干
拉取主干到分支git checkout master git pull git checkout devgit merge master git push -u origin dev合并分支到主干git checkout devgit pullgit checkout mastergit merge devgit push -u origin master
2021-02-24 17:13:59
268
原创 Linux安装jdk、tomcat、mysql等
1.linux_jdk/usr/java/jdk1.8.0_181 <--- /usr/jdk1.查看当前目录pwd 2.查看linux位数sudo uname --m i686 //32位 x86_64 //64位 3.安装jdk 3.1 在usr目录下建立java目录 mkdir usr/java 3.2 将jdk-8u181-linux-x64.tar解压到java目录下 tar -zxvf jdk-8u181-linux-x64.
2021-01-31 17:37:57
105
原创 RSA(加密解密、签名验签)
加密解密(公钥加密,私钥解密)签名验签(私钥加签,公钥验签)//生成公钥私钥KeyPairs key = RSAEncryption.initKey();String publicKey = key.getPublicKey();String privateKey = key.getPrivateKey();System.out.println("公钥:"+publicKey);System.out.println("私钥:"+privateKey);System.out.pri
2021-01-26 17:29:07
224
原创 Jackson自定义序列化器(针对null,针对指定name的属性)
public class JsonObjectMapper extends ObjectMapper { /** * */ private static final long serialVersionUID = 8034942567620323925L; public JsonObjectMapper() { super(); this.setSerializerFactory(this.getSerializerFactory().withSerializerMod...
2021-01-26 15:33:13
400
原创 SPI机制
JDK SPI//resources/META-INF/services //com.xxx.Logcom.xxx.impl.Log4j com.xxx.impl.Logback //public class Main { public static void main(String[] args) { ServiceLoader<Log> serviceLoader = ServiceLoader.loa
2021-01-25 17:40:27
104
原创 jackson适配fastjson写法的代码
public class JSON { private static ObjectMapper mapper; static { mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); mapper.
2021-01-24 13:10:10
166
转载 HttpClient工具类
原文链接文章目录 1. 什么是HttpClient 2. 功能介绍 3. 版本比较 4. HttpClient不能做的事情 5. HttpClient使用流程 6. HttpClient工具类 6.1 添加依赖 6.2 编写spring-boot启动类 6.3 编写get和post请求测试controller 6.4 创建httpClient响应结果对象 6.5 重点,编写httpclient工具类 6.6 启动spring-boot,测
2021-01-21 09:50:09
2086
原创 微信支付(PC扫码支付和H5公众号支付)
最近在做微信支付,微信支付比较坑,官方居然只有.NET、C#、PHP的demo居然没有java的demo。然后微信支付是不提供测试账号的需要直接用正式的公众号。首先来介绍下微信扫码支付吧,微信扫码有两种方式,这里采用第二种方式统一下单(JSAPI)。需要提前在微信公众号后台申请微信支付开通,具体的开通规则详细文档见点击打开链接其实微信支付挺简单的无非就是拼装参数给微信发送请求,要注意的几点就是支付的金额是分,微信没有同步回调地址,只有异步回调的地址。这样的话就不能实时反馈支付结果到PC端页面。网上大多数
2021-01-20 17:48:03
529
原创 分批执行大批量数据
List dataList = new ArrayList();for(int i=0;i<999;i++) dataList.add(4);int splitSize = 500;int arryLength = dataList.size();int result = 0;int group = 0;if (arryLength % splitSize != 0) { group = 1;}result = arryLength / splitSize;result.
2021-01-20 17:44:13
176
转载 本地缓存高性能之王Caffeine
原文链接本地缓存高性能之王Caffeine前言随着互联网的高速发展,市面上也出现了越来越多的网站和app。我们判断一个软件是否好用,用户体验就是一个重要的衡量标准。比如说我们经常用的微信,打开一个页面要十几秒,发个语音要几分钟对方才能收到。相信这样的软件大家肯定是都不愿意用的。软件要做到用户体验好,响应速度快,缓存就是必不可少的一个神器。缓存又分进程内缓存和分布式缓存两种:分布式缓存如redis、memcached等,还有本地(进程内)缓存如ehcache、GuavaCache、Caffeine
2021-01-20 17:00:19
113
转载 Java8的CompletionService使用与原理
原文链接CompletionService是Java8的新增接口,JDK为其提供了一个实现类ExecutorCompletionService。这个类是为线程池中Task的执行结果服务的,即为Executor中Task返回Future而服务的。CompletionService的实现目标是任务先完成可优先获取到,即结果按照完成先后顺序排序。CompletionService的使用非常简单。从源码查看ExecutorCompletionService类,该类只有三个成员变量:public cla
2021-01-20 16:07:06
267
原创 页面修改线程池参数_4
Java8CompletionService 处理线程池public class ThreadChangeDemo { //创建 private static ThreadPoolExecutor createExecutor(int corePoolSize, int maximumPoolSize, .
2021-01-20 15:59:22
128
原创 阿里四面你都知道吗?
阿里四面你都知道吗?最近一个朋友跟我说,现在面试太难了,再也不是以前那种随便背几个面试题然后就能拿到offer的时候了。最近朋友准备换工作面试了阿里,然后和我交流了下他遇到的一些面试题,然后我整理了一下,然后就分享给有需要的朋友们顺便也查漏补缺一下。一面1.开始是自我介绍;2.HashMap的实现原理,什么是hash碰撞,怎样解决hash碰撞?3.ConcurrentHashMap的原理,与HashTable的区别?4.HashSet和TreeSet的区别以及底层实现原理5.HashMap
2021-01-20 15:40:32
17
转载 黑名单(诸如反爬虫等)
原文链接可恶的爬虫直接把生产6台机器爬挂了!引言正在午睡,突然收到线上疯狂报警的邮件,查看这个邮件发现这个报警的应用最近半个月都没有发布,应该不至于会有报警,但是还是打开邮件通过监控发现是由于某个接口某个接口流量暴增,CPU暴涨。为了先解决问题只能先暂时扩容机器了,把机器扩容了一倍,问题得到暂时的解决。最后复盘为什么流量暴增?由于最近新上线了一个商品列表查询接口,主要用来查询商品信息,展示给到用户。业务逻辑也比较简单,直接调用底层一个soa接口,然后把数据进行整合过滤,排序推荐啥的,然后吐给前端
2021-01-20 14:41:41
904
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人