- 博客(33)
- 问答 (1)
- 收藏
- 关注
原创 golang 值传递和指针传递
切片数据结构中,包含了指向原数组内容的指针,这可以说是值传递中的指针传递。很多人可能会疑惑,什么是值传递中的指针传递,这不是两个东西吗。事实上,golang 函数只有值传递,即使是传递指针,也是将指针拷贝一份,所以函数内外参数的地址是不一样的,但是指向的底层内容是一致的,所以函数外的参数可以被修改。
2023-03-03 17:11:32
480
原创 rabbitmq概念的一点理解
关于rabbitmq的一些个人学习记录,不涉及到具体的代码,主要是一些概念性的东西,或许比较浅显,但对一些同样感到困惑的同学可能有一些提示作用.1.尽管没有很明显表示出来,但我们可以认为rabbitmq与消费者直接还存在着一个缓冲区,缓冲区的大小与prefetchcount关联,默认可以存几万条消息,java中使用basicQOS()修改,可用作Consumer的限流操作。消费者将缓冲区的消息消费完毕后,如果没有ack或nack,rabbitmq不会再向Consumer推送消息,Queue中的消息也不
2021-10-14 17:32:05
299
原创 django 关于Session禁用
最近在开发时,想使用token来替代django的session,所以打算禁用掉session,能节省点开销嘛。在django1.x的时候,我记得禁用session是直接注释掉INSTALLED_APPS中的session和中间件中的session中间件即可,如下:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', # 'dj
2021-07-12 16:02:01
609
原创 多线程和异步的区别
首先说明,这里介绍的区别可能有些浅显,内部更深层的原理,说实在的,我现在有点理解不了,大家可以参考以下两个地方,主要是以C#为主要语言:c#关于异步编程?C# 彻底搞懂async/await异步是一个概念,多线程是实现异步的其中一种方式,你说多线程也是异步似乎也没太大的问题。多线程中,线程需要自己创建,自己管理。而异步中,线程的创建时由线程池来管理的,当涉及到io操作时,会使用线程池中的io线程。使用多线程,系统无法自行通知我们线程是否结束,我们想要获取多线程执行后的结果,只能在主线程中阻塞。而
2020-06-29 21:45:04
4235
9
原创 django group by 的坑
django中的group by 是通过annotate()来实现的,但是这里存在一个很难发觉的坑。如果使用的model是这样定义的class Message(models.Model):sender = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='sent_messages', ...
2020-04-12 13:47:55
1747
3
原创 django reverse 和 reverse_lazy 的 区别
在django中,reverse 和 reverse_lazy 都可用于将别名转换为真实的url,但两者存在一个很重要的区别。习惯地,大家都会使用reverse(),但在某些情况下,使用reverse()会导致如下的错误:django.core.exceptions.ImproperlyConfigured: The included urlconf 'config.urls' does no...
2020-01-04 17:06:52
4179
原创 django channel 的基本使用和概念解析
网上有很多channel的教学文章,我看的时候,总感觉有些概念模糊不清,看得有点头痛(比如推送消息时的type字段究竟时什么意思)。结合多篇文章,很不容易理解了一些,于是在下面写出channel的基本使用和对一些概念的解析,希望对大家有一些帮助。关于channel的更深一层理解和使用,我也正在学习,后面可能会写的更详细点。参考:1.Django-channels2.0笔记–2、Channel...
2019-12-19 22:16:04
11404
1
原创 option请求与跨域
以前也知道HTTP请求中有option方法,只是大概知道是用来询问服务器支持什么请求方法的,直到今天遇到了一个很奇怪的问题,才对option方法有更深一步的理解。前提:项目是vue+django,我把前端项目运行起来,使用http://localhost/xx来展示前端项目,而django则用http://127.0.0.1/ 来允许服务,当我向后端发送一个POST请求时,奇怪的事情发生了,后端...
2019-12-04 18:46:15
1040
原创 关于前后端分离时,如何解决djaogo的CSRF问题
先说一句,这里我还没有找到我觉得合理的解决方案,记录了一些概念性的东西,还有别人的一些解决方法,但是我总觉得有点问题,希望有路过的同学,如果看明白了我的疑惑,能帮我解惑一下1.如果前后端都使用django来完成,那么这个CSRF防御应该是挺好解决的,可以在表单中加入{% csrf_token %}来完成。<form action="add_book" method="post">...
2019-11-24 14:42:55
485
原创 npm 局部安装和全局安装的路径问题
下面主要讲了npm 局部安装时,模块的安装路径问题。有时候安装了模块,但是又找不到它具体安装在哪里,还真的有些烦躁。我一直以为局部安装应该是把模块安装到运行命令的目录下,但其实不是这样。1.npm install 默认是局部安装,运行该命令时,首先会检查你当前目录有没有package.json文件,如果有,则在该目录下生成node_modules目录,并把安装的模块都安装在node_modul...
2019-11-19 18:19:32
1909
原创 springboot直接访问静态资源失效
最近尝试在一个springboot项目中直接访问静态资源时,如http://localhost:8080/3.png发现报了404错误,感觉很奇怪,在记忆中,只要把静态资源直接放到/static,/public,/resources,/templates下时,就可以象上面一样直接进行访问。我尝试新建了一个项目,什么东西都不修改,只是简单地添加了spring-boot-starter-web...
2019-04-24 18:06:28
1634
原创 springBoot多模块扫描子模块下的注解
今天在练习一个SpringBoot的时候出了点问题,该项目分为多个模块,其中A模块依赖于B模块。但是在B模块中的类中添加注解时,以A模块为主启动模块时却扫描不到,很久没有使用springboot了,一时间不知道是什么原因。百度了很久,才发现了问题:B模块中添加注解的类所在路径为:lkm.securityA模块中主启动类所在路径为:com.lkmspringBoot 会自动扫描启动...
2019-04-19 10:53:22
4556
原创 springboot filter
在 springboot 中注册使用Filter,大概有以下三种方法:使用 @Comment这种方法缺点就是不能限定过滤的url,会对所有的请求进行过滤@Comment# 首先要继承Filterpublic class TimeFilter implements Filter { @Override public void init(FilterConfig filterCon...
2019-04-18 19:03:40
513
原创 多个线程输出1-1000
多个线程按顺序输出数字,关键控制输出数据的同步1.可以利用锁机制,这里就不写了。2.利用线程辅助类 semaphore,semaphore可以控制同一时间访问某资源的线程的数量,如果我们需要按顺序输出数字,那么我们需要控制同一时间只能有一个线程进行输出。class B extends Thread{ Semaphore sem = null; public B(Semaphore se...
2019-03-06 15:24:44
970
原创 HTTPS连接过程及安全问题
https是基于ssl+http的进行内容加密、身份验证的网络协议,相比于http更安全。但是这里主要不讨论它们的区别,需要了解请另外查询。1.tcp三次握手建立连接(https是建立在Tcp协议上的,因此同样需要三次握手建立连接)2.客户端发送请求到服务端3.服务端返回数字证书和公钥(服务器搭建https是会申请一个CA证书,并生成一对私钥和公钥)4.客户端验证证书的安全性,若验证...
2019-02-18 17:47:36
1639
原创 java类初始化执行顺序
class B{ public static B t1 = new B(); public static B t2 = new B(); static { System.out.println("静态块"); } { System.out.println("构造块"); }}public class Const...
2019-02-16 11:14:45
482
1
原创 python发送邮件及邮件渲染
最近,公司给了我一个需求,将邮件的渲染方式进行优化,主要的话,其实就是改变邮件中图片的展示方式.之前,公司的邮件是以html的形式发送的,即邮件中的背景图片是通过超链接来实现的,这样就存在一个问题:如果以后图片的地址发生了改变,那么想再次查看邮件就变得非常不愉快,因为样式都变了.所以,图片不能再以超链接的形式进行访问,而是需要将图片当做资源进行发送.老大给我的提示是将整个邮件转换成eml进...
2019-01-13 16:00:59
1963
原创 sudo与 ssh key
今天碰到一个问题,从gitLab上clone项目时,clone失败, 一直显示要我输入网站的密码,因为是公司搭建的gitLab,自然我是不知道密码的。//我是在把项目clone到根目录下,所以需要sudo提权sudo git clone xxx@git出现这个问题应该是SSH key不对,但是我检查了一遍,ssh key 是对的。经过别人提醒才知道,我生成ssh key时,是直接在普通用...
2018-12-12 23:27:03
683
原创 解决外网无法远程连接centos上的django服务
最近在接触python的框架 django,真的踩了很多坑。刚开始是在公司电脑(Ubuntu)上配置django服务,一切岁月静好,没啥子大问题,但是公司电脑是台式的,无法携带,想在宿舍里学习一下还必须在自己的电脑上重新配置环境。我的电脑是windows,安装各种出错,又换pip版本,又手动下载django文件,结果还是失败,百度了很多,得出的结果是,windows貌似不支持django,非要...
2018-12-09 09:12:41
1285
原创 dpkg和apt-get
刚接触Ubuntu不久,刚开始,对Ubuntu上软件安装这一方面有点懵,对各种命令也不熟悉。 因为不像windows,可以直接鼠标操作下载exe文件,Ubuntu都是在终端中完成,看起来比较可怕。 在Ubuntu中安装软件,大致可以分为三种: 1.直接从网页上下载deb文件,deb文件是预编译文件,通常使用dpkg命令进行安装,(也可以双击安装)需要自己安装依赖。 2...
2018-12-06 23:20:47
712
原创 HouseRober(简单的偷盗问题)
假设有一个强盗,在一条街上进行盗窃,一条街上有一排房子,每个房子中有一定数额的金钱,你不能同时打劫相邻的房子,求一晚上能打劫的最大“收益”。分析:有i个房子,每个房间金钱为W[i],从第1个房子开始盗窃,对每一个房子只有两种选择,偷或者是不偷。这里用dp[i]表示到第i个房子时,最大收益。第i个房子,如果偷,则dp[i] = dp[i-2] + W[i],(i-2 是因为相邻房子不能偷,既...
2018-10-10 15:59:29
259
原创 二叉树和深拷贝
在做剑指中对称二叉树这一道题目时,我的思路时先把二叉树的镜像转换出来,在把两棵二叉树的左子树和右子树分别进行比较。(更简便的应该是直接将二叉树的左子树与右子树进行比较,而不必转换,不过当时没想到),不过重点不在这,先看最初的代码 class TreeNode { int val = 0; TreeNode left = null; TreeNode right = nu...
2018-09-25 15:21:18
1645
原创 redis主从复制
配置从库,不配置主库命令info replication : 查看角色信息SLAVEOF ip port : 作为从库的配置1.修改其他redis.conf的信息,包括端口号,log文件名,dump.rdb名称,即生成的文件不要具有相同名称2.window下不能开启daemonize,因此也没有pid文件3.开启redis服务 4.使用redis-cl...
2018-09-21 19:58:09
159
原创 redis持久化策略
RDB在指定时间间隔内将内存中的数据快照写进磁盘,也就是Snapshot(快照),它恢复时是直接将快照文件读进内存Redis会创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程结束,再用这个临时文件覆盖原先的持久化文件。整个过程,主线程是不进行任何IO操作,确保了极高的性能,如果需要进行大规模的数据的恢复,且对于数据恢复的完整性不是非常敏感,RDB比AOF高...
2018-09-21 11:32:19
155
原创 nginx 基本配置
#user nobody;worker_processes 1; #子进程,nginx启动会有1个master进程和若干个子进程#error_log logs/error.log; [ debug | info | notice | warn | error | crit ] 日志级别#error_log logs/error.log notice; #error_log ...
2018-09-19 10:17:20
604
原创 "errcode":45047,
{“errcode”:45047,”errmsg”:”out of response count limit hint:} 微信公共号客服消息在向客户推送时,可连续发送20条,如果期间客户没有回复,则停止发送.除非客户回复一下. 但20条好像也不是固定的。。。。...
2018-09-11 12:29:14
623
转载 在SpringMVC中 /* 和 / 的区别
在SpringMVC中 /* 和 / 的区别 / :会匹配到 /springmvc 这样的路径型url,而不会匹配到像 .jsp 这样的后缀型的url。 /* :会匹配到所有的url:路径型url 和后缀型的url (包括/springmvc,.jsp,.js,和.html等)。在SpringMVC中需要添加这个标签: 用来处理静态资源被“/”所拦截的问题 。...
2018-09-05 09:27:25
595
原创 @Component 和 @Bean 的区别
Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean。 完成这两个动作有三种方式,一种是使用自动配置的方式、一种是使用JavaConfig的方式,一种就是使用XML配置的方式。@Compent 作用就相当于 XML配置@Componentpublic class Student { private String name = "lkm";...
2018-09-05 09:10:51
60398
12
原创 SpringBoot 创建webSocket服务端
我们已经有了 HTTP 协议,为什么还需要webSocket?它能带来什么好处? 答案很简单,因为 HTTP 协议有一个缺陷:通信只能由客户端发起。 举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。 如果想持续从服务的获取消息,则只能使用轮询或建立长连接的方法来实现,但是这样或浪费很多不必要的资源。 而web...
2018-09-05 00:53:18
2207
原创 数组初始化
数组初始化有三种方式:动态初始化:数组定义与为数组分配空间和赋值的操作分开进行; 静态初始化:在定义数字的同时就为数组元素分配空间并赋值; 默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。public class Test { public static void main(String[] args) { ...
2018-09-01 18:27:57
317
原创 1
微信video层级过高在制作微信小程序时,其中一个功能时实现类似抖音的视频轮播,当时使用了swiper组件,在微信编译器上调试时看上去还可以,等到在真机上预览时,瞬间心态爆炸。。在滑动页面时,视频一直浮动在上方,把其他内容都给覆盖了,这是一个超级无敌大bug,瞬间感觉这几天都白干了,冷静下来后连忙在社区和百度上找答案,结果发现这是由于video层级过高造成的,使用该组件时,我也没有注意到文...
2018-08-19 22:35:08
115
空空如也
关于单元测试中 Mock 的理解和使用
2020-10-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人