技术笔记
文章平均质量分 93
mgsky1
这个作者很懒,什么都没留下…
展开
-
SpringBoot整合Apache Thrift
目前缺乏Spring Boot与Apache Thrift的整合包,因此自己造了一个轮子。可以应对相对简单的RPC调用场景原创 2022-06-13 14:43:03 · 2597 阅读 · 0 评论 -
记一次SQL调优过程
文章目录引言发现问题初步分析进一步分析效果引言最近在做项目的时候,发现接口的请求处理速度不理想,虽然使用了缓存可以保证后来用户的体验,但是当第一位用户访问时,需要生产数据并写入缓存,这就有一点影响用户体验了。于是考虑对接口进行调优,这里主要说慢SQL方面的调优。我的项目比较简单,先说结果,只要加一个索引就好了。后面会记录一下从发现原因到思考,再到出解决方案的整个流程,我觉得更重要的是后面的部分发现问题在使用JProfiler进行JDBC性能监控时,发现了一条慢SQL:出现了一个长达4s的查询,原创 2022-03-12 10:59:29 · 2073 阅读 · 0 评论 -
关于Spring AOP中切点修饰符@annotation、@args与args约束说明
于其说这是一篇文章,不如说这是一篇笔记,主要介绍了@annotation、@args和args的作用以及一些坑点。原创 2022-03-01 14:56:12 · 11313 阅读 · 1 评论 -
Swagger-UI的修改指南
前言由于打比赛的项目需求,需要使用到Swagger,并且需要稍微改动一下现有的Swagger-UI以符合项目的整体风格,我度娘搜了一下,有从源代码层面讲怎么修改的不多,很多是会贴一个基于BootStrap修改的pom坐标。本文先简单介绍一下Swagger是什么,重点介绍如何对现有的Swagger-UI进行修改。本文基于Swagger 2.9.2Swagger OverviewSwagger可以说是现代Web后台开发中的利器,可以使用简单的注解生成项目的API文档,并且拥有接口调试功能,很方便。S原创 2021-11-22 17:32:12 · 3338 阅读 · 1 评论 -
关于AMQP协议
文章目录前言什么是AMQP协议AMQP特性角色架构核心——ExchangeDirect ExchangeFanout ExchangeTopic ExchangeHeaders Exchange核心——Queue核心——Acknowledgements积极的ACK消极的ACK持久化Queue的持久化消息的持久化Channel与虚拟主机channel虚拟主机相关阅读前言最近在学习RabbitMQ,而RabbitMQ的特色之一就是AMQP协议,阅读完其英文的tutorial后,便做了笔记整理,如果有错,还希原创 2021-11-06 15:36:49 · 1353 阅读 · 0 评论 -
浅谈Synchronized关键字
emm…我更愿意把这篇博文当作是一篇笔记,其中有蛮多的东西是摘抄书本的,做一个思路上的整理。个人理解的部分其实并不太多,有错的地方欢迎评论区指出,还请大家多多包涵~作用被synchronized关键字所修饰的代码,在同一个时间段内,只允许一个线程访问其资源,保证了代码的同步性。synchronized最终是依靠操作系统中的Mutex Lock实现的,Java是内核线程,也就是每一个Java线程会映射到操作系统中的一个线程,线程上下文的切换需要操作系统由用户态转换到内核态,比较消耗资源,所以早期sync原创 2021-03-05 20:16:28 · 181 阅读 · 0 评论 -
利用TextRank算法制作一个可以提取聊天关键词的QQ群机器人
文章目录前言效果TextRank算法PageRank算法TextRank算法共现关系滑动窗口图构建关键词抽取思路实现过程大体思路Nonebot框架介绍技术细节会话监听数据预处理分词使用TextRank算法抽取关键词并生成词云定时任务设定代码库参考资料前言发现自己已经很久没有更新博客了,读研的这些日子其实过得并没有想象中的那么顺利。这学期发现自己其实并不适合搞科研…唉,希望能顺利毕业吧。言归正传,本篇博文将介绍如何利用TextRank算法实现一个可以提取QQ群聊天热词的机器人。制作这个机器人的初衷是:有原创 2020-12-28 16:16:39 · 2983 阅读 · 4 评论 -
关于Maven中的依赖问题
前言这个月跟着老师开发项目的时候,利用Maven来构建项目,遇到了依赖冲突的问题(阿里的EasyExcel与github上的一个将excel转pdf的插件都用到了poi,且两个poi版本互不兼容),也因此把Maven的依赖机制好好地学习了一遍,在此做一个记录。什么是依赖依赖可以理解为一个软件包,由groupId、artifactId、version 组成的坐标进行唯一确定,它在pom.xml中常以下面这种形式存在:<!--这里以引入easyExcel为例子--> <depen原创 2020-09-21 21:19:49 · 697 阅读 · 0 评论 -
【经典问题】括号匹配问题
文章目录前言例题算法思想算法举例代码栈类括号匹配核心算法完整代码运行结果前言括号匹配问题算是栈应用中比较经典的问题了,在数据结构的书中还有各种考试中会出现。最近刷题的时候也遇到了,就想写一篇文章整理一下。例题题目来自Leetcode中国给定一个只包括 (,),{,},[,] 的字符串,判断字符串是否有效。有效字符串需满足:1、左括号必须用相同类型的右括号闭合。2、左括号必须以正确的...原创 2019-05-27 21:57:35 · 45929 阅读 · 3 评论 -
关系数据库理论之最小函数依赖集
前言在本文中,会介绍为什么要引入最小函数依赖集,最小函数依赖集是什么,以及如何求最小函数依赖集。为什么需要最小函数依赖集在关系数据模型中,一个关系通常由R(U,F)构成,U为属性的全集,F为函数依赖集。在实际生活中,我们可以根据语义来定义关系中属性的依赖关系,例如学号可以唯一确定一位学生的姓名、性别等等。但是,有时候给出的函数依赖集并不是最简的,这有时会拖累我们对关系的后续处理,例如关系的分...原创 2019-04-06 23:38:53 · 71517 阅读 · 72 评论 -
关系数据库理论之范式
文章目录前言这四大范式的关系函数依赖概念分类完全函数依赖部分函数依赖传递函数依赖主属性与非主属性范式第一范式第二范式第三范式BC范式前言范式应该算是关系数据库中的难点了,难就难在对关系的分解上。最近在学习关系数据库理论,就想着可以利用文章将思路捋捋。本文主要论述的是范式中有关函数依赖的部分,包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及BC范式(BCNF)。至于基于多值依赖...原创 2019-01-11 21:59:18 · 1170 阅读 · 0 评论 -
SSM(Spring+SpringMVC+Mybatis)框架超详细搭建指南(利用Maven构建项目)
其实这是我实习生涯开始后的第一个任务,但是当时太忙了一直没有时间记录,就按照教程走了。刚好现在实习结束了有些时间,把整个搭建的过程还有一些坑记录下来还是很有必要的。DEMOhttps://github.com/mgsky1/aboutSpring/tree/master/ssm_csdn环境 IDEA 15.0.5 JDK 1.8 tomcat 7.0...原创 2018-07-02 11:41:01 · 782 阅读 · 1 评论 -
浅谈外网通过反向代理访问内网资源时的权限保护
标题可能有些绕口,意思就是我在外网要访问内网一资源(比如网站)时需要身份验证,只有通过身份验证才能访问,这个该如何实现? 其实这是一朋友问我的一个问题,需求就是: 领导在外出差,要通过企业微信访问内网资源,而这个资源又是高度保密的,不能随便让别人看到,公司又不提供VPN等工具,要如何实现?我觉得这个需求蛮有意思的,就去深入思考了一下。我们知道,微信开发很多情况下是需要绑定域名的,那...原创 2018-05-27 11:51:04 · 4451 阅读 · 0 评论 -
与Struts2中Validation框架的初见
咳咳,Struts2的验证(Validation)框架昨天纠结了N久啊,还是借助官方的文档,这次使用的是Basic Validation,官方的一个example,主要通过xml文件对用户的输入(是否为空、输入范围)进行验证。我第一次看的时候以为蛮简单,结果折腾到晚上11点才弄出来,应用到自己的期末课设那更狼狈QAQ,凌晨1点依然无果,刚刚才解决,赶快记录下来。 一、关于Struts2的验证原创 2016-12-26 11:36:08 · 1389 阅读 · 0 评论 -
简单的Struts2的Interceptors(拦截器)机制介绍以及利用拦截器实现用户登陆时执行耗时操作并自动跳转的实例
咳咳,标题有点长。话说也好久没有更文了。最近学校在学习Struts2,哎,感觉根本没上什么哇,教程都是用网上的。。。上周布置一作业说利用拦截器实现用户登陆时进行耗时操作并在完成之后进行页面跳转。看似很简单,但是对我这样的初学者来说还是有难度的。老师给的教程上的内容又太简单,百度也找不到我想要的答案,怎么办呢?最后还是要靠官方的文档,不了解Struts2拦截器的机制真的做起来很被动啊!最近也在准备C原创 2016-12-12 00:27:26 · 1403 阅读 · 2 评论 -
使用栈结构简易实现浏览器的后退与前进功能(以Android为例)
使用栈结构简易实现浏览器的前进与后退操作(不使用官方函数),以Android为例原创 2017-05-05 22:42:34 · 4155 阅读 · 3 评论 -
使用Apache的虚拟主机以及代理搞定多个网站的子域名(包括跨域情况)解析问题
假期也快完了,抓住假期的尾巴,做一些自己想做的事情。 之前一直在烦恼一个问题,就是诸如10.10.0.1:8080这样的网址如何采用域名访问,这样的方式显示在地址栏中,内网无所谓,要是到了公网就给人一种很low的感觉。后来想到使用各大厂的云解析DNS,目前只有一个万网的有提供类似的服务,他们称为【隐性URL】,说白了,就是做一个带特定端口号的转发,让地址栏没有那么“难看”。大部分提供商要想做原创 2017-08-31 20:42:54 · 5010 阅读 · 0 评论 -
基于Docker容器和PHP技术的简易多人在线编程平台(云IDE)的实现
前言: 这篇文章将讲述如何利用Docker云计算框架和PHP技术在Linux环境下实现一个多人在线编程环境,同时保证服务器安全。我把它叫做云IDE。可能没有桌面级IDE的全部功能,只有简单的多语言编程,运行,下载代码功能,虽然现在这种平台在网络上还是不少的,不乏包括百度、华为这些大厂。不过当前有叙述这一实现思路的文献并不多(国内),中国知网上泛眼过去几乎看不到影子,我看到的一篇是《CodeR原创 2018-01-02 10:50:14 · 6895 阅读 · 6 评论 -
通过PHP执行系统命令
PS.这几天用PHP写了一个小工具,因为要部署在Linux,又要暂时使用sudo执行一些Shell命令,网上也有很多资料,但是有的要么就直接把Web服务器用户直接提升权限,要么就使用密码存文件方式,安全性都不是特别好,好在搜索到在Wordpress上一位外国友人的文章,很实用,安全性也不错,就把它翻译过来和大家分享一下,下面是正文部分。 许多时候我们需要在Linux系统上执行系统命令--比如来删...翻译 2018-01-14 21:26:38 · 3034 阅读 · 0 评论 -
关于两种家庭常用局域网扩展方式的区别
这几天想把几台电脑联网,组建一个Windows家庭组,但是局域网中有两台路由器,都有连接设备,网络拓补图是这样的:网上找了一下扩展网络的方式,有两种1、将上图路由器B的LAN口与路由器A的LAN口相连接,取消路由器B的DHCP功能。(这是有线扩展的方式,无线就叫WDS)2、将上图路由器B的WAN口与路由器A的LAN口相连接,将路由器B设置为自动获取IP这两种的区别在于:原创 2018-01-23 23:34:37 · 2933 阅读 · 0 评论 -
利用Python获取正方教务系统在校成绩
今天要说的一个小项目是利用Python来获取正方教务系统的在校成绩,说白了这就是一网络爬虫。做之前也有上网搜索了一下资料,这里就给一个总体的思路吧,就以我学校的作为例子。不过遗憾的是并没有添加验证码的破解功能,还需要手动输入。希望能够帮助到一些朋友。以下的代码全部基于Python3。开始之前:1、请自行安装BeautifulSoup 用于网页解析2、请自行安装PrettyTable 用户格式化输出...原创 2018-02-19 12:26:48 · 3985 阅读 · 0 评论 -
PHP误导性错误:Maximum execution time of 0 seconds exceeded
前言:前几天做项目的时候遇到了PHP上传文件超时的错误,并且我都把PHP配置中的超时时间设为0(无限制)还是错,后来Google到了这篇文章,说还有一种原因可能是我们服务器的设置,我用的是Apache,还是在Windows下的,这篇文章着重讲的是Linux/Unix下,虽然问题没解决,不过感觉文章还不错,讲到了网上解决超时没有讲到的地方,所以翻译过来给大家分享一下~ 这篇文章告诉我们...翻译 2018-03-03 19:53:44 · 2502 阅读 · 0 评论 -
利用OpenLayers3在地图上显示标记并点击标记后显示弹出框
前言在上一篇《利用全能电子地图下载器+GeoWebCache发布Arcgis Server缓存瓦片过程全记录》中,我们利用GeoWebCache作为瓦片地图服务器发布了瓦片地图。虽然在其中可以直接浏览,但是在GeoWebCache1.10.0中,官方内置的是OpenLayers2的版本,这个版本比较老旧,不能很好的适应诸如触屏设备等应用环境。所以,我想利用OpenLayers2的升级版Open...原创 2018-05-04 13:55:31 · 28055 阅读 · 32 评论 -
利用Python+阿里云实现DDNS(动态域名解析)
引子我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应的IP是可以动态变化的。那这个有什么用呢? 比如,在家里的路由器上连着一个raspberry pi(树莓派),上面跑着几个网站,我应该如和在外网环境下访问网站、登陆树莓派的SSH呢? 还有,家里...原创 2018-05-27 08:54:37 · 75956 阅读 · 38 评论 -
(全英文)How to install and run a simple Asp.Net 5 Application in a Docker Container
Preface This is my first time to write this technical document in English, maybe it has some grammar or explanation errors, pointed out and tell me, thank you from the bottom of my heart. Let’s pr原创 2016-12-14 12:19:26 · 425 阅读 · 0 评论