12 2022 档案
摘要:记录一点关于自定义注解的小事儿 记录一些遇到过的问题 “Cannot find method 'value'” 定义了一个自定义注解, @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface
阅读全文
摘要:背景 业务开发,需要做一个操作日志,操作日志需要记录某一条数据在操作前后的值的变化记录,并写到操作记录表。 这种情况,使用自定义注解,加个切面,再合适不过了。 于是就开干。 代码部分 先写一个切面 @Target({ElementType.METHOD}) @Retention(RetentionP
阅读全文
摘要:背景: 业务功能开发,新增一些查询功能,对应地创建了一个 mapper 接口类,一个 mapper.xml 文件。 这个mapper 的命名是: Rolemapper.xml (盯着它) 什么namespace, 方法名都没有名, 但是在执行方法查询的时候,却冒出了一个错误: Invalid bou
阅读全文
摘要:背景: 前两天写过一篇关于:mybatis拦截器 + 自定义注解 + 获取注解的属性 的文章,感觉写得不是很好,有很多事情没有说明清楚 包括: mybatis拦截器的 @Signature 注解的几个参数,type, method, args 分别可以取什么值, type 可以有什么类型, 对应的
阅读全文
摘要:背景 mybatis拦截器 + 自定义注解——这种方式可以为我们解决很多事情,带来很多便利,但有时候会在自定义注解上配置一些属性,并且拦截器上要拿到这些属性的值。 这个时候,我们要怎样获取到这些值呢: 代码示例 SM4MACFieldAnnotation 定义一个注解,用于字段进行数据防篡改的校验。
阅读全文
摘要:记录一次部署遇到过的问题 问题描述:在一次现网服务上线中,新增了一个http请求地址的配置项,这个地址是当前服务请求另外一个服务的接口的一个配置请求,反正写的就是一个完全的接口url吧。 app: loginUrl: http://10.1.100.21:18080/xxxxxxx/token 然后
阅读全文
摘要:背景: 在一些需求下,使用拦截器会大大简化工作量也更加灵活: 在项目中,要更新数据表的审计字段,比如 create_time, creator, update_time, updator, 这些字段,如果每一个表对应的mapper 都去写一次,或每一个方法都去更新一下,这个工作量非常大并且不太友好,
阅读全文
摘要:背景: mac 系统, 想对文件进行内容替换, 执行 sed -i xxxx 语句的时候,提示“command c expects \ followed by text” 查了一下,大概是这个指令在 mac 下不太好使吧。得换个语句。 解决方案: brew install gnu-sed alias
阅读全文
摘要:背景 有服务里面在跑定时任务,一直是单点在运行,虽然存在挺大的风险,但也这样扛下来了。 但是呢,现在要做多点了,springboot 的 Scheduled,虽然好用,在多点就会存在一些问题,多个节点都跑了定时任务,就会有问题。 基于些,就把 xxl-job引用进来了。 使用说明 关于xxl-job
阅读全文
摘要:背景 在现网中发生了一次事故,有一个表的数据被清掉了。 排查不是代码的问题,那可能就是存在误操作,但怎样找到是什么时候,哪个ip进来,操作的什么语句呢? —— 这个时候就需要操作记录(审计记录)了。 那怎样查看数据库上的操作记录呢? 查看审计日志 使用语句: (1)开启数据库审计功能(这个是查看审计
阅读全文
摘要:参考信息 本人参考的是这一篇,描述方面比本人好得多: springboot线程池的使用和扩展 VisiableThreadPoolTaskExecutor 背景: 简略记一下,笔记: 目标是想在 springboot服务下,自定义一个线程池,然后使用异步,原目的是为了批量导入用。 项目架构 普通的s
阅读全文
摘要:背景: 报错信息: error creating bean with name 'eurekaAutoServiceRegistration': Singleton bean creation not allowed while singletons of this factory are in d
阅读全文
摘要:1、查看索引 select table_name,index_name from dba_indexes where table_name=‘EMP’; 2、修改字段类型 alter table cooperation MODIFY detail VARCHAR(300); 如果想要改成 TEXT,
阅读全文
摘要:背景 1、使用 Squaretest 生成controller的测试类(略) 生成的代码大概如下: 该文章只简单记录使用的一个过程,和遇到过的一个小问题, 就是,requestbody 传参无效 import com.alibaba.fastjson.JSON; import org.junit.T
阅读全文
摘要:简单记录一下关于对于数据校验的方式,和对应包的引入 1、controller层的参数要加上 @Validated 2、对应参数对象的属性,就用 @NotNull 等注解。 controller 层 定义方法: import org.springframework.validation.annotat
阅读全文
摘要:1、本地commit 了,但未push到远程,使用以下指令即可: $ git reset --hard HEAD^ 回退到上个版本(本地修改会丢失,慎用) $ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前 $ git reset --hard c
阅读全文
摘要:背景 有一个模块打包的时候,发现打出的jar 包特别小,显然是没有把相关依赖的 resources, 依赖的 jar 包打进去,只打了源码。 找了一圈,因为对 maven 不太熟悉,也不知道为何。只知道,仅此一个模块有问题,并且最近也没有任何的调整(后来发现,没发现问题,只是这个模块很久没有动过,没
阅读全文
摘要:1、pom 依赖 <dependencies> <dependency> <artifactId>log4j-slf4j-impl</artifactId> <groupId>org.apache.logging.log4j</groupId> <version>2.19.0</version> <
阅读全文
摘要:背景: 有些时候,提交了不想提交的记录,想删除,却发现只是用了更多的提交去覆盖旧的记录, 不仅痕迹没有抹除,反而越涂越黑,分支合并得也乱七八糟。 操作 想删除服务器上的记录,要做的操作指令有两条: (1)git reset --hard 2d0e14de3ff3ae8a9db17f2b0b4c294
阅读全文