- 博客(30)
- 收藏
- 关注
原创 线程池异步回调方式
文章目录线程池异步回调方式代码展示首先需要封装一个Task类创建一个业务层去调用这个任务并且放入线程池中控制层去调用调用截图总结线程池异步回调方式 当请求进入Controller层中的时候,我们要经历一系列的CRUD的操作才能返回信息,往往其中部分的CRUD并不是需要及时完成的,可以在返回信息后完成。也就是说需要异步去操作,那在JAVA中如何去实现呢? **首先这种异步去执行肯定是存在时间差的,也就是一个请求是分时间段去处理的。**这里就需要一个根据时间去执行的线程池,封装各种不同的任务丢入线程池
2020-10-10 15:40:28
2882
2
原创 HTTPS证书配置
HTTPS证书配置小程序的开发离不开 HTTPS 域名,因为小程序的后台接口只能有 HTTPS 的域名,那么下面我们来讲如何配置HTTPS 域名。申请一个域名阿里云上申请一个域名,39元/年,想要啥域名就要啥域名,当然没被申请过的接着去备案–》审核–》通过经过一系列的流程,你终于拥有了自己的域名。申请一个 HTTPS 证书并完成配置当你拥有属于自己的域名的时候,就可以去申请 HTTPS 的证书啦(当然,也可以自己制作)。SSL证书管理选择购买免费的证书证书申请之后,
2020-05-25 16:50:51
1182
原创 2020年Java实现钉钉机器人
钉钉机器人Java实现获取自定义机器人webhook钉钉机器人文档网址钉钉里面新建群,在机器人管理页面选择“自定义”机器人,输入机器人名字并选择要发送消息的群。如果需要的话,可以为机器人设置一个头像。最近钉钉更新了文档,在安全方面做了更好的处理,选择其中一种方式进行发送,代码会在下面的工具类中列举。消息类型及数据格式本着要写成工具类的方法,所以把需要用到类型都写成实...
2020-05-06 17:39:49
2452
原创 手写栈和队列底层实现(java实现)
文章目录打造属于自己的栈和队列栈栈的应用实现一个栈的接口实现一个栈(基于数组)测试栈类队列实现一个数组队列实现一个循环队列数组队列与循环队列的比较打造属于自己的栈和队列 前一篇博客介绍了如何打造属于自己的数组,在实现数组的基础上,我们来完成对栈和队列的实现。栈在栈顶压栈在栈顶出栈栈的应用无处不在的Undo操作(撤销操作)程序调用的系统栈,函数A中调用另外的函数B,先将函数...
2019-10-08 14:47:20
737
6
原创 手写链表底层实现(java实现)
打造属于自己的链表 前面数组篇中的动态数组实现,以及基于数组实现的栈和队列,它们的底层依旧是依托于静态数组,靠的是resize来解决固定容量的问题。但是链表就不同了,他实现了真正的动态数据结构,通过指针的指向来实现元素之间的关系依赖。数组和链表的对比数组支持快速查询,是因为在创建数组的时候,在堆中创建了连续的空间。正因此,数组在插入和删除元素的时候可能需要开辟额外的空间,所以慢了。...
2019-04-18 09:54:44
4200
1
原创 手写数组的底层实现(java实现)
打造属于自己的Array 查看JDK1.8中ArrayList源码时,其中的Arrays.copyOf为Native方法,具体怎么实现的并没有。所以打算自己实现,来深入了解一下Array这个数据结构。静态数组创建增删改查方法自己创建数组无非就是数组的 增删改查 方法的创建,即 add,remove,set,get 方法。首先创建一个简单的int集合来表示数组,默认...
2019-03-27 09:43:42
3332
原创 JVM系列学习(四):JVM的内存分析
文章目录JVM的内存结构(JDK1.8)运行时数据区:[官方文档](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html)非堆区Metaspace常用参数垃圾回收算法工作原理标记清除复制标记整理分带垃圾回收:JVM采用的方法对象分配垃圾收集器串行收集器Serial:Serial,Serial Old并行收集器Parallel:P...
2019-03-25 09:53:17
394
原创 JVM系列学习(三):Tomcat性能监控与调优
文章目录Tomcat性能监控与调优tomat远程debug :[JDWP协议及实现](https://www.ibm.com/developerworks/cn/java/j-lo-jpda3/)tomcat-manager监控psi-probe监控:[github地址](https://github.com/psi-probe/psi-probe)Tomcat性能监控与调优tomat远程de...
2019-03-18 15:59:46
327
原创 JVM系列学习(二):基于JVisualVM的可视化监控
文章目录基于JVisualVM的可视化监控监控本地Tomcat监控远程Tomcat基于Btrace的监控调试Btrace安装入门Btrace使用详解拦截方法拦截时机拦截this,参数,返回值获取对象的值拦截其他注意事项基于JVisualVM的可视化监控监控本地Tomcat路径:\Java\jdk1.8.0_171\bin\jvisualvm.exe打开之后更新插件 地址监控远...
2019-03-17 22:07:53
415
原创 JVM系列学习(一):基于JDK命令行工具的监控
文章目录基于JDK命令行工具的监控JVM的参数类型运行时JVM参数查看:jinfo -flags pidjstat查看虚拟机统计信息jmap+MAT实战内存溢出jstack查看死循环与死锁jstack简介死循环导致CPU飙高基于JDK命令行工具的监控JVM的参数类型标准参数-help-server -client-version -showversion-cp -classpa...
2019-03-07 11:26:48
239
原创 Nginx的配置与开发学习(八):安全与架构
文章目录Nginx安全常见的恶意行为常见的应用层攻击手段Nginx+Lua的安全WAF防火墙基于Nginx的中间件架构了解需求设计评估Nginx安全常见的恶意行为常见的恶意行为爬虫行为和恶意抓取,资源盗用基础防盗链功能–目的不让恶意用户能轻易的爬取网站对外数据secure_link_module —对数据安全性提高加密验证和失效性,适合如核心重要数据access_module -...
2019-03-05 13:53:44
144
原创 Nginx的配置与开发学习(七):常见问题与性能优化
文章目录Nginx常见问题Nginx性能优化Nginx常见问题相同server_name多个虚拟主机优先级访问顺序访问location匹配优先级= 进行普通字符精确匹配,也就是完全匹配^~ 表示普通字符匹配,使用前缀匹配~ \~ * 表示执行一个正则匹配()server { listen 80; server_name test...
2019-03-05 13:50:11
325
原创 Nginx的配置与开发学习(六):结合Lua进行开发
文章目录Nginx与Lua开发Lua的基础语法Nginx+Lua优势准备环境灰度发布Nginx与Lua开发Lua:是一个简洁,轻量,可扩展的脚本语言安装lua解释器:yum install luaLua的基础语法服务器内:print(“hello world”);lua脚本变量a=[[alo123"]]a=‘alo\n123"’a=’\97lo\10\04923"’...
2019-03-05 13:45:43
537
原创 Nginx的配置与开发学习(五):配置属于自己的HTTPS证书
文章目录Nginx高级模块HTTPS服务服务器上自己配置HTTPS证书生成流程:配置苹果要求的证书开始配置HTTPS服务优化Nginx高级模块secure_link_module模块制定 并允许检查请求的链接的真实性以及保护资源免遭未经授权的访问限制链接生效周期md5:加密验证 expires:过期校验safe_down.conf 配置se...
2019-03-04 14:28:16
255
原创 Nginx的配置与开发学习(四):动静分离
文章目录Nginx动静分离动静分离Nginx的rewrite规则正则表达式Nginx动静分离动静分离通过中间件将动态请求和静态请求分离,从而分离资源,减少不必要的请求消耗,减少请求延时动静分离的情况下,动态请求挂掉的情况下,也能请求到静态请求test.conf的配置属性upstream java_api{ server 127.0.0.1:8080;}server ...
2019-03-01 14:29:12
184
原创 Nginx的配置与开发学习(三):代理与缓存
文章目录Nginx进阶静态资源WEB服务![在这里插入图片描述](https://img-blog.csdnimg.cn/20190226135821706.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NfeW1fd3c=,size_1...
2019-02-26 14:02:32
340
原创 Nginx的配置与开发学习(二):访问控制与请求限制
文章目录Nginx模块讲解Nginx官方模块默认模块Nginx的请求限制(压测工具 ab)Nginx的访问控制Nginx模块讲解Nginx官方模块编译选项作用–with-http_stub_status_moduleNginx的客户端状态http_stub_status_module配置server { listen 80; //确保端口不...
2019-02-14 10:11:01
225
原创 Nginx的配置与开发学习(一):服务器安装与配置
确认工作ping www.baidu.com确认yum源是否可用 yum list|grep gcc关闭iptables配置 iptables具体用法iptables -L(查看是否有iptables规则)iptables -Fiptables -t nat -Liptables -t nat -F关闭SELinexgetenforce 查看是否关闭 没关闭...
2019-02-13 10:52:43
196
原创 使用SpringBoot设置定时任务
使用Quartz设置定时任务 maven依赖 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-quartz --> <dependency> <groupId>org...
2019-01-09 15:02:23
224
原创 实体类数组中操作重复列中属性的方法
最近做数据处理统计日活的数据,遇到一个问题:用户当天登陆10次,就会发10条数据,运营想要看这个用户的当天登陆总时长,就需要把这个10条数据即实体类中的日活属性相加。实际操作中,10条数据不可能整齐排列完全,是参差不齐的。也不能在数据库层进行操作(太慢了~。~)。就运用了map+list这2种数据结构去处理。(一般重复性的问题都可以用map的特性去处理)写完测试完之后,跟运营沟通,发现不需...
2019-01-02 17:46:31
551
原创 数据库设计概要
文章目录第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)反范式化MySql常用的存储引擎表及字段的命名规则表的水平垂直拆分MySQL数据库优化数据库优化的目的避免出现页面访问错误增加数据库的稳定性优化用户体验MySql慢查询日志的开启方式和存储格式开启慢查询分析慢查询工具查找有问题的SQL分析SQL查询Count()和Max()的优化方法子查询优化如何选择合适的列建立索引...
2018-12-26 09:33:11
1959
原创 IDEA快捷键和插件设置
IDEA快捷键和插件设置写完代码通常习惯性的按一下这两个快捷键Ctrl+Alt+O 优化导包,可以把没用的包给去掉Ctrl+Alt+L 格式化代码常用的快捷键Alt+Insert 构造方法,Set/Get等,挺方便的Alt+Enter 当代码有红线的时候,这个快捷键就会出来解决方案Ctrl+Shift+...
2018-12-25 17:48:30
2245
原创 解决IOS系统/Safari浏览器下时间不能正常显示
最近Mac电脑打开后台发现时间格式变成了NaNa,可是谷歌打开后是正常的啊?? 查了一下发现原来safari浏览器不支持yyyy-MM-dd的时间格式,只能把返回前端的格式改成yyyy/MM/dd。所以在后端只要在数据库映射到实体类的get方法上加个注解就解决了 @JsonFormat(pattern = "yyyy/MM/dd HH:mm:ss", tim...
2018-12-10 18:25:25
4803
原创 使用SpringBoot发送并配置邮件
使用SpringBoot发送邮件使用场景注册验证网站营销找回账户密码提醒,监控告警触发机制邮件发送原理邮件传输协议SMTP协议POP3协议内容不断发展IMAP协议Mime协议Excel介绍读写Excel三种常用技术POI 效率高,操作复杂,支持公式,宏,图像图标POI提供API给Java程序对Microsoft Office格式档...
2018-11-28 15:10:03
1228
原创 AJAX跨域问题解析
文章目录AJAX跨域问题为什么会发生AJAX跨域浏览器限制浏览器禁止检查跨域跨域JSONP解决跨域弊端被调用方解决跨域服务器端实现简单请求与非简单请求带Cookie的跨域带自定义头的跨域Nginx配置Apache服务器配置(Apache24)Spring框架解决调用方解决跨域隐藏跨域参考资料AJAX跨域问题为什么会发生AJAX跨域浏览器限制浏览器禁止检查跨域命令行参数启动:chorme...
2018-11-26 15:43:00
148
原创 免费手机号归属地查询接口(Java实现)
import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;/** * Created by cyj * on 2018/8/14. */public class JudeMobileAttribution { /** * 精确到省 * @param phoneNum 手...
2018-11-26 13:53:14
1997
3
原创 Git日常记录学习
Git安装Gitgit --versionyum install -y git用户信息git config --global user.name “XXX”git config --global user.email XX@.XXX检查配置信息git config --list在现有目录中初始化仓库git initgit add *.cgit add LICEN...
2018-11-26 10:46:22
156
原创 JSON常用对象转换
记录一下平常常用的处理JSON串的方法,下面是待处理的JSON串:{"code":200,"msg":"success","data":[{"city_id":"311","city_name":"阿拉善","admin_code":"152900","initial":"A
2018-10-22 16:45:41
360
原创 Http状态码结合源码记忆
记一下HTTP状态码记忆方法,每一个记清楚是不可能的了,只能通过源码查看的方式,根据源码的提示来得知大概的意思。百度了一下HTTP状态码的描述,竟然找到一个很好的工具网站http://tool.oschina.net/,前后端的基础工具基本都有。我用的IDE是IDEA,使用快捷键ctrl+shift+n,搜索httpstatus就可以查看HTTP的状态码以及简要命名,以下是HttpStatu...
2018-10-18 14:43:16
612
原创 SpringBoot之actuator
SpringBoot的监控与管理 在微服务架构中,我们将原本庞大的单体系统拆分成多个提供不同服务的应用。虽然内部逻辑因分解而得以简化,但是系统的维护复杂度大大提升。很明显,传统的运维方式不能再使用,我们需要一套自动化的监控运维机制。这套机制就必须要不间断地收集各个微服务应用的各项指标情况已作为基础,并作出监控和预警规则。 我们首先来了解一下SpringBoot官方自带的一个特殊依赖模块...
2018-10-08 22:05:53
377
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人