- 博客(246)
- 问答 (5)
- 收藏
- 关注
原创 自己编写一个谷歌浏览器插件, 模拟某音直播间自动发消息
可以实现在直播间自动发消息。实现原理: 利用谷歌popub.js 发送消息。在content-script.js 接收消息,操作浏览器dom元素,发送消息。
2024-07-17 11:34:35
214
原创 实现了一个心理测试的小程序,微信小程序学习使用问题总结
6. 如何获取多个 radio 框的值(不是表单)。可以借助bindchange 方法 加 e.target.dataset.xx, xx 类似js的name属性,然后e.detail.value 相当于js的 value。bindchange 方法 参数e, e.detail.value。如果想要获取其他属性,使用data-xx 指定,然后 e.target.dataset.xx 获取。3. 不刷新页面的情况下,清除radio选中的值。7. 使用setData 才会双向绑定 标签中的元素。
2024-07-15 22:17:12
546
原创 rr 为什么会出现幻读?
rc是每次读生成一个新的readview, 这样每次读都能获取到最新(规则:指当前版本或比未提交版本小的)的undolog。1. undolog 可以理解为就是一个数据快照,里面包含数据,当前事务ID(相当于版本号)和上一个快照的指针。2. readview 可以理解为事务快照, 记录当前事务ID,其他未完成的事务ID。这就是多版本的来历。阻塞数据修改,那么虽然readview变了,但是根据规则找到的还是同一条undolog。就是每个事务就相当于一个版本,记录自己的版本,同时知道其他未完成事务的版本。
2024-03-19 22:36:45
420
原创 spring初始化bean之后执行某个方法
比如我想在A类中控制B类(我的需求:B类在jar报中使用@Bean生成)的初始化,我用了BeanPostProcessor,发现A类先于B类实例化,可以使用@DependsOn 强制B类实例化。问题2: 可以使用 ApplicationListener 监控容器启动完成后。bean定义-实例化-初始化-销毁。注意: 这里的bean定义是指所有的bean定义完成,然后才继续执行,而实例化和初始化 单个bean 一次执行的。2. 所有bean初始化后执行?
2023-12-25 16:15:36
979
原创 spring RabbitListenerContainerFactory 作用
容器基础属性配置,最终连接以CachingConnectionFactory 为准。在 RabbitListener可以对不同队列使用不同容器区分mq地址和其他接收配置。
2023-12-20 16:38:19
535
原创 apollo 配置 list
和字符串一样。 多个值在字符串中用逗号隔开即可。如 xx: "a,b,c,d"读取也和字符串一样 @Value("${xx}")网上查到都是 @Value("#{$xx}}") 天坑。
2023-08-02 18:15:00
113
原创 记一次sql 查询很慢, DEPENDENT SUBQUERY。
sql 如下。 需求很简单: 其中r 是一张关联 c 和用户的表。 查询出某个用户没有关注过的c数据。select c.* from c where //其他普通c表列条件省略NOT EXISTS (SELECT 1 FROM r WHERE r.n= 10119 AND r.is_valid=1 AND r.id= c.id) ...
2023-06-20 14:35:00
39
原创 springboot 自定义listener 添加环境变量。 抄的springboot项目去掉了一些不用的jar包后包 No Value Bound 错误排查。...
1. 自定义listener 实现ApplicationListener<ApplicationEnvironmentPreparedEvent>, Ordered (如果要设置优先级可以实现Ordered接口,注意order值越小优先级越高)public class MyListener implements ApplicationListener<Applicatio...
2023-06-15 14:24:00
86
原创 冒泡排序 和 插入排序 快速排序
package com.zc.original_test;import java.util.Arrays;public class OrderTest { public static void main(String[] args) { int[] or = new int[]{10, 18 , 14, 25, 9 , 38 , 20 , 17, 24, 18}; ...
2022-09-20 14:50:00
29
原创 mybatis bind 标签 覆盖 复杂对象的某个属性值 问题。
需求: 有四个sql 都需要用一个 相同的where 条件,于是定义了一个sql 标签。 然后在每个sql中使用<include refid="myWhereSql"></include> 引入。后来需求变更,有两个sql 的where条件有一个参数需要和其他两个不同。 于是想到了bind标签sql 3 : <bind name = "req.cc" va...
2022-08-09 11:13:00
39
原创 普通java项目打成jar包,引入第三方jar .
ja方法1 . MANIFEST.MF 中添加Class-Path 。 1. 项目src目录下创建 META-INF/MANIFEST.MF 文件、文件内容Manifest-Version: 1.0Class-Path: lib/commons-lang3-3.10.jarMain-Class: com.ordinay.Test 注意lib 目录 和...
2022-07-29 10:45:00
80
原创 maven 引入了jar包,但却不能使用jar包里类。 maven什么情况可以不写版本?批量引入jar包?
无报错,但是就是 无法 使用 lombok 的类。 发现classpath 里面也的确没有lombok jar包。最后把json 的 version 属性加上 就正常了。 所以结论: 不加version有时候不报错,但是会导致后面的jar包无法引入(也不报错),继而导致命名引入了jar包,却无法使用。...
2022-02-11 15:06:00
156
原创 springboot1.x apollo 更改属性值不起作用。 ConfigurationProperties
1. @ApolloConfigChangeListeners 默认监控命名空间是 application.properties , 如果是自己创建的namespace ,一定要明确指定(包含文件扩展名)。 @ApolloConfigChangeListener(value = {"xx.yml"}) public void onChange(ConfigChangeEvent configC...
2021-12-28 13:30:00
52
原创 maven profile 的作用
maven 的profile 可以是我们通过编译时指定 -P 来实现 使用不同的 属性变量。比如: <profiles> <profile> <id>local</id> <properties> <...
2021-07-30 18:34:00
35
原创 配置中包含maven属性,在idea中本地启动无法正常获取配置
1. 本地启动一个spring cloud 项目,无法启动 (注:测试环境正常),且控台无错误日志。分析:debug 代码发现是配置无法获取。 查看配置获取方式 是 spring config 通过spring: application: name: cc@project.name.suffix@ profiles: active: '@...
2021-07-13 16:46:00
67
原创 tomcat8 无法解析 请求url 中 包含 [: 或者 :] 等特殊符号
使用如下URL:http://127.0.0.1:8080/xx/[:xOGxeSSk5ENaYh89ziEFJA==:].do如果使用tomcat8 无法正常访问,浏览器network 报错400 :ERR_HTTP_RESPONSE_CODE_FAILURE访问 server 没有任何报错,开始以为是filter 把错误吃掉了,把所有filter 加断点连进都进不去。...
2021-07-06 16:16:00
34
原创 debug 获取mybatis dao 连接的数据库
MapperProxy.invokeMapperMethod.execute查看sqlSession .((HikariProxyConnection)sqlSession.getConnection()).getPoolEntry().hikariPool.config
2021-05-20 18:09:00
33
原创 java 守护线程的关闭
在进程内所有用户线程 全部消亡后,如果 守护线程仍在执行 (注意: 守护线程并不是一直运行中,守护线程中的代码执行完毕,则守护线程自然消亡。),则会被强制消亡。...
2021-03-26 17:01:00
31
原创 使用spring @RequestBody 接收参数,返回400 。 但是控台不报错误日志
使用spring @RequestBody 接收参数,返回400 , 大概率是参数问题,比如json参数转对象错误。但是控台不打印错误日志 ,没法一眼看出问题。假如我参数很多,就麻烦了。加断点调试:InvocableHandlerMethod 文件private Object[] getMethodArgumentValues(NativeWebRequest request, ...
2021-02-25 13:43:00
52
原创 iframe 中 js 在浏览器中无法调试,js 文件找不到
1. 在js 中添加debugger .2. 在js 文件中添加//# sourceURL=aa.js 其中aa.js为文件名称
2021-02-25 13:27:00
34
原创 idea 控制台乱码debug
请在 HELP->Edit Custom VM OPtions中加-Dfile.encoding=utf-8重点 : 然后重启IDEA 就好了 。做备份。参考https://www.freesion.com/article/2875240662/
2020-04-07 20:37:00
22
原创 线程控制
1. semaphore 信号量:控制并发线程数量。acquire 获取, release 释放2. exchanger 两线程数据交换,在调用exchange() 方法后等待另一个线程调用exchange() 后交换数据3. CountDownLatch , await() 等待所有线程调用countDown() 后 继续执行。4. CyclicBarrier 等待规定数量线程到达aw...
2020-04-03 15:58:00
20
原创 jvm 垃圾回收
回收策略标记清除复制标记整理根对象来源: java 栈 ,静态变量,寄存器堆年轻代:Eden和两个survivor老年代持久代 1. jmap -head pid 可以查看堆的配置情况,该命令可能导致进程终止。 可以使用jstat -gc 代替。 2. jmap -histo:live pid 查看堆中所有存活...
2020-04-03 13:58:00
24
原创 java 单例模式
1. 饿汉式: 类静态变量,利用类的初始化,jvm 中一个class 只会初始化一次public class A{ public static final A a= new A();}2. 懒汉式public class A{ private static A a; public synchronized static A getIns(){ ...
2020-04-03 11:26:00
24
原创 http报头
http 报头有四种: 请求头,响应头,实体头,通用头。Accept: 属于请求头,希望接收的数据类型Content-type : 属于实体头,发送给服务端实体数据的数据类型。Content-encoding : 属于响应头,指内容压缩方式,有gzip ,compress ,deflate ,是服务端返回给客户端的内容压缩方式,与Accept-encoding 对应,其为指定客户端能够...
2020-04-03 10:58:00
18
原创 java 构造函数 , 参数传递 , lamda表达式
1. java 子类中必须显式或者隐式的调用父类的构造方法,原因是双亲委派机制。java 在创建一个对象是,会在构造方法中依次向上调用父类的构造方法。为了找到父类的构造方法,所以子类应显式或者隐式的调用父类的构造方法 .显式: 构造方法的第一行super(n..) n 个参数隐式: 子对象构造方法会默认调用父类的无参构造方法,即super(). 所以父类中如果没有无参构造,则子类必...
2020-04-02 16:10:00
26
原创 mysql 杂识
1. mysql慢查询记录中除了记录超过long_query_time 时间的sql,还记录没有使用索引的查询,可以使用参数log_queries_not_using_index 设置开闭2. timestamp 占4个字节,可表示时间范围少,自带时区3. int(1) 和 int(11) 区别: 都是int ,占64个字节,1和11 表示的是显示长度,设置zerofill 可以看到左侧补0...
2020-04-02 15:47:00
18
原创 spring mvc 配置 拦截器不起作用
applicationContext.xml 配置<context:component-scan base-package="com.shdy"> <!--<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/&...
2020-01-10 15:03:00
58
原创 spring mvc 每次请求后是否自动销毁线程
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.slf4j.MDC;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import...
2019-12-11 14:39:00
55
原创 mysql 杂识: 超时sql , sql 优化
mysql 可以打开slow_query_log 以开启日志记录。记录方式有两种,通过参数 log_output = file 或者table 。慢查询时间参数: long_query_time同时注意慢查询日志中总会多出一些还没有超过 long_query_time 的日志,,这个可能是 未使用索引的sql 查询,可以通过参数log_queries_not_using...
2019-11-25 16:06:00
25
原创 spring mvc:annotation-driven 和 context:component-scan
1. <!-- 开启spring mvc 配置,可以理解为主要做请求关系映射,请求参数处理,异常处理--><mvc:annotation-driven/>2. <!-- 处理该包中的各种spring注解,即将各个注解类交由容器管理 --><context:component-scan base-package="com.shdy.controller"...
2019-11-25 15:33:00
19
原创 mysql for update 锁行的错误理解
1. 最开始的理解是 : for update 会对查询出的结果加行锁,没有查询到结果就不加锁。但是今天发现有一句代码执行for update 却超时了 。查了mysql 获取锁超时时间是 50s .已我目前业务量不可能有 某一行 被单独锁定50s 。 除非是整表有锁,导致获取单独行锁超时。排查发现的确是表锁。正确锁行的理解: for update 会对 经过索引(包含主键, 此处...
2019-11-22 13:57:00
27
原创 mysql 为大表添加索引,导致超时的解决办法
简单的创建索引语句 : create unique index inxName on table A('Col') 。如果表数据量不大,没有问题,但是数据超过千万,可能你等了半天,却告知你超时了。网上查到解决方案:1. 复制表A 的数据结构 , 不复制数据create table B like A;2. 表B加上你需要的索引3. 把原有数据导入新表4. 修改表A 的名称为A_o...
2019-10-24 14:01:00
55
原创 logback 使用异步和缓存提升日志效率
主要是使用AsyncAppender 提供异步功能,然后使用 immediteFlush配置使用缓存(缓存8k).注意: 高版本的logback 已经指出SizeAndTimeBasedRollingPolicy , 我的版本是1.0.13可以使用SizeAndTimeBasedFNATP实现。<?xml version="1.0" encoding="UTF-8"?> ...
2019-09-17 13:26:00
40
原创 利用rabbitmq 实现消息的延迟发送
需求: 实现消息的延迟通知,每5s, 30s,60s,120s 通知一次。 就是每隔一段时间执行一次方法,该方法做业务上的处理。网上查rabbitmq原生是不支持延迟消息的。(rocketmq 支持), 但是可以换种方式实现: 利用其死信队列。rabbitmq的队列或消息可以设置过期时间,过期后会将消息放入你设置的队列中,如<rabbit:queue name="notify.us...
2019-08-26 14:52:00
20
原创 spring mvc 全局错误处理遇到的问题
今天项目甲方调用项目接口报了一个错误,直接显示异常信息的页面415(服务器无法处理请求附带的媒体格式) 。 很不美观。这显然不是我代码的问题,是调用方没有按约定请求。于是想整个全局异常处理。 本项目使用spring mvc 对外提供restful 接口。网上找了下,大致有两种解决方案:1. 继承HandlerExceptionResolverimport org.slf4j.Lo...
2019-08-14 20:38:00
32
原创 logback 按照业务主键分文件打印日志,使用SiftingAppender结合MDC. 实现项目中定时任务的日志单独打印,使用FilterReplay.NEUTRAL. 线程池和MDC...
1. 需求: 按照业务主键划分日志分件,可以使用siftingAppender结合MDC 实现。 <appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"> <discriminator> <key>sysUUID</key...
2019-08-12 13:16:00
35
原创 spring mvc controller 方法处理参数的过程。RequestWrapper 包装 @RequestBody 参数 。。 filter , inter,aop...
参考:https://blog.csdn.net/q957967519/article/details/91544888今天有个需求:每个请求设置一个唯一的标识,目前是用uuid,用于数据库主键,当然也用于打印日志的时候有个唯一标识。目前的代码是这样的, Qrs 有个属性uuid. @ResponseBody @RequestMapping(value = "/tran...
2019-08-08 15:17:00
87
原创 关于 spring redis 集群的两个错误
1.Jedis does not support password protected Redis Cluster configurations!spring-data-redis 1.8版本以下是不支持jedis 集群2. spring-data-redis 换成1.8 以后报错org.springframework.core.serializer.support.Deseriali...
2019-08-05 11:05:00
33
空空如也
tomcat shutdown 的时候进程无法关闭,初查是线程池导致的,但未找到解决方案
2019-06-27
保存到数据库前 判断数据是否存在的问题 ,同步问题
2015-06-30
保存到数据库前 判断数据是否存在的问题 ,同步问题
2015-06-17
要做全文搜索 ,使用solr, 输入 拼音怎么处理?
2014-09-18
如何查看 jboss 是否安装成功
2014-04-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人