- 博客(160)
- 收藏
- 关注
原创 Java springmvc 参数名用is开头导致为null
因为这里为null了,所以就不会invoke参数,所以你的boolean参数,会一直是false,因为java机制,你这里不设置的话,默认false,如果是Boolean,那么就会一直是null。后面继续省略,直接看核心逻辑,直接定位到这里,找他什么时候用反射把数据填进去的,嵌套了一堆,烦死了,找了半天,而且版本也不一样了,之前我都是直接搜coll方法就有,现在还得从新跟源码。一直到这里其实都是有的,但是后面有个remove,给删了,就是这个方法,没有匹配的数据,给删了。
2024-04-10 12:21:51 736
原创 golang 协程 (goroutine) 与通道 (channel)
(3)如何通过一个通道让主程序等待直到协程完成(信号量模式):如果希望程序一直阻塞,在匿名函数中省略 ch <- 1 即可。实践经验表明,为了使并行运算获得高于串行运算的效率,在协程内部完成的工作量,必须远远高于协程的创建和相互来回通信的开销。(1)如何使用 for 或者 for-range 遍历一个通道:(尽量使用这种或者是跟select配合使用)(12)如何在通道中使用计时器和定时器:定时器 (Timer) 结构体和计时器 (Ticker) 结构体。(6)如何限制并发处理请求的数量。
2024-03-07 20:42:28 596
原创 golang 糟糕的错误处理
个人看法:golang的语言设计者,完全没考虑实际业务场景和开发人员会遇到什么样的开发场景,遇到什么样的产品,遇到什么样的开发周期,当需求来了要你今天开发,明天就上线,就只能这样写代码,语言的设计者就设定了代码中不得不出现很多的err的判断,又说这个很混乱,简直是自取其辱!
2024-03-06 17:42:12 385 2
原创 golang 实现http请求的调用,访问并读取页面数据和内置的一些方法
比如在网页应用发送 html 字符串的时候,在输出之前执行 w.Header().Set(“Content-Type”, “text/html”):req.Method,这是一个包含 GET 或 POST 字符串,用来描述网页是以何种方式被请求的。:这个函数会让浏览器重定向到 url(可以是基于请求 url 的相对路径),同时指定状态码。:这个函数将返回网页没有找到,HTTP 404 错误。:这个函数返回特定的错误信息和 HTTP 代码。
2024-03-04 17:09:21 530
原创 golang使用net包中的Dial,Listen做http请求响应
【代码】golang使用net包中的Dial,Listen做http请求响应。
2024-03-04 16:07:20 508
原创 golang Unresolved reference ‘EAGAIN‘
【代码】golang Unresolved reference ‘EAGAIN‘
2024-03-04 14:31:48 190
原创 golang 报错xxxx <literal value> xxxx expected
【代码】golang 报错xxxx <literal value> xxxx expected。
2024-02-28 20:07:46 158
原创 golang JSON数据格式 XML数据格式 Gob(这玩意真的有人用吗?)
函数分别封装了 io.Reader 和 io.Writer 接口。初始化文件(或者任何实现 io.Writer 的类型),并调用。要想把 JSON 直接写入文件,可以使用。类型来支持常用 JSON 数据流读写。反过来与其对应的是使用。
2024-02-21 17:47:44 214
原创 golang Cannot assign a value to the unexported field ‘xxxxx‘
最近学习golang,结果发现参考github的代码报错了。查了一下资料,这里记录加吐槽一下,这个设定真的让我感觉痛苦。
2024-02-02 09:51:54 529
原创 安装使用docker-compose
Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。
2023-07-12 14:01:15 292
原创 docker指令(未完待续)
老是忘记docker指令,网上看的一些有些找起来太麻烦,自己常用的一些挂这里,方便以后找。他的视频挺全的,但是文档收费,就几块钱,你们可以买,帮助学习,我是自学狗+白嫖党,我没买。指令整理除官网外,借鉴了以下。
2023-06-21 14:20:08 284
转载 CAP/BASE/2PC/3PC/SEATA/TCC/可靠消息最终一致性(CV的)
如果是回滚事务参与者"接受到abort请求后,利用日志中的undo信息来执行事务的回滚操作,并在完成回滚之后释放所有的事务资源。接受到PreCommit请求后,如果CanCommit阶段所有的事务参与者"都响应Yes,事务参与者执行事务操作,并将undo和redo信息记录到事务日志中,对资源进行加锁。三阶段提交协议(3PC):是二阶段提交的改进版,其将二阶段提交协议的“准备阶段”分为二步,形成了CanCommit,PreCommit,DoCommit三个阶段,并且加入了超时机制。
2023-05-22 17:19:52 376
转载 限流算法总结:计数器、滑动窗口、漏桶算法、令牌桶算法(抄的)
对比固定时间窗口限流算法,滑动时间窗口限流算法的时间窗口是持续滑动的,并且除了需要一个计数器来记录时间窗口内接口请求次数之外,还需要记录在时间窗口内每个接口请求到达的时间点,对内存的占用会比较多。那么我们可以这么做:在一开 始的时候,我们可以设置一个计数器counter,每当一个请求过来的时候,counter就加1,如果counter的值大于100并且该请求与第一个 请求的间隔时间还在1分钟之内,那么说明请求数过多;如上图,流入漏桶流量的流速是不恒定的,经过漏桶限速后,流出流量的速度是恒定的。
2023-05-22 13:48:19 278
转载 Mybatis面试题(转)
它的原理是,使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用a.getB.getName,拦截器invoke方法发现a.getB是值,那么就会单独发送事先保存好的查询关联B对象的sql,把B查询上来,然后调用a.setB(b),于是a的对象b属性就有值了,接着完成a.getB.getName方法的调用。这就是延迟加载的基本原理。1、基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;
2023-05-15 16:47:53 123
转载 获取 /resources 目录资源文件的 9 种方法(抄的)
项目开发中,经常会有一些静态资源,被放置在resources目录下,随项目打包在一起,代码中要使用的时候,通过文件读取的方式,加载并使用;来源:https://blog.csdn.net/u011047968/article/details/107311462。本文中汇总整理了九种方式获取resources目录下文件的方法。
2023-05-12 14:43:31 2299
转载 jol报错NoClassDefFoundError
而在运行阶段,假定目标的容器(比如我们这里的tomcat容器)已经提供了这个jar包,app可以直接使用容器提供的jar,所以无需我们打包对应的jar包了。原文链接:https://blog.csdn.net/weixin_44730681/article/details/115015445。版权声明:本文为CSDN博主「架构师的小跟班」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。),也就是说这个项目在编译,测试,运行阶段都需要这个jar包在classpath中。
2023-05-11 17:27:20 225
转载 优雅的使用反射-spring中的ReflectionUtil
原因很简单,InvocationTargetException是在method.invoke的时候抛出的,方法在执行的过程中,方法本身的执行可能抛出RuntimeException或者Error,其余方法本身抛出的Exception异常直接包装为UndeclaredThrowableException(RuntimeException)处理;可能有童鞋记得,在AopUtils中也有这几个isXXX方法,是的,其实AopUtils中的isXXX方法就是调用的ReflectionUtils的这几个方法的;
2023-05-10 14:46:26 1456
转载 编辑器查看内存使用情况(抄的)
使用java代码也是可以查看jvm内存使用情况的,如果你经验比较丰富的话,应该是知道的,那就是使用Runtime,Runtime对java的运行环境进行的封装,可以得到jvm的状态信息,使用Runtime.getRuntime()就可以得到Runtime的引用,代码如图所示。注意,上面的运行得到的结果单位是字节,如果想转换为M的话,需要把得到的结果除以(1024*1024),因为1M = 1024K,1K = 1024byte。上面介绍了Runtime的几个参数,下面我们运行一下看看结果,如图所示。
2023-05-09 16:31:32 97
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人