- 博客(35)
- 资源 (3)
- 收藏
- 关注
原创 mybatis-plus updateById源码
/ 循环注入自定义方法} else {主要是下面两段逻辑:这里的DefaultSqlInjector增加所有的默认方法@Override} else {这里实现默认方法的sql(inject中的injectMappedStatement方法)/* 注入自定义方法 *//*** @param name 方法名*/@Override。
2025-02-06 16:15:41
284
原创 java 全局日期格式化
如果某个字段不使用该格式,依旧可以使用@JsonFormat(pattern = "yyyy-MM-dd"),@JsonFormat的优先级高于@JsonComponent。
2024-09-24 13:59:04
231
原创 java spring全局统一返回格式
5.默认是使用统一格式返回,如果不需要,则加上@NotWtBody。4.继承ResponseBodyAdvice实现返回结果的处理。3.自定义注解控制是否使用统一结果格式。1.自定义统一返回类。
2024-08-15 14:28:11
501
原创 java springboot处理全局异常
GetterSUCCESS("0000","请求成功"),SYSTEM_ERROR("0001","系统异常"),NAME_OR_PASSWORD_ERROR("1000","用户名或者密码错误"),PARAM_ERROR("1001","参数错误"),EMPTY_ERROR("1002","结果为空"),TOKEN_EXP("1003","token已过期,请重新登录"),TOKEN_ERROR("1004","token错误"),
2024-08-15 14:01:17
225
原创 sql在客户端执行快,在mybatis中很慢
2.将#改成$试试,就是mybatis 解析 在占位符处理的时候 花费了大量时间,还成$后和plsql执行时间几乎一样了(prepareStatement # 和 Statement $,预编译会提前生成执行计划,不做优化,因此效率可能很低 )4.对于Oracle数据库查询条件中有date类型的,java实体类有util.date类型的查询时会转换成timestamp。影响这些的原因大概就是这些mybatis预加载,拼接SQL慢,数据类型不一致导致无法用索引,结果集太大,交互次数多导致时间变长。
2024-08-12 14:58:23
1854
原创 springboot本地配置覆盖apollo配置
主要是两个文件:com.ctrip.framework.apollo.spring.boot.ApolloApplicationContextInitializer和com.ctrip.framework.apollo.spring.config.PropertySourcesProcessor。这样即将apollo配置的级别调到最低,然后在application.yml中配置的数据会覆盖apollo中的配置。查看configUtil.isOverrideSystemProperties()的源码。
2024-07-31 14:32:13
1095
原创 mybatis-plus generator自动生成代码
下面是mapper.xml.flt示例(Freemarker模板)2.模板配置(有默认模板)
2024-07-26 14:37:49
398
原创 java PageHelper 会自动对orderBy关键字进行处理
4.实现是用mybatils的拦截器,可看 PageHelper 的 SqlUtil类,实现代码如下(第20行代码处理orderBy关键字)3.实际生成的sql。
2024-07-05 16:24:19
579
原创 springboot中bootstrap配置无效
2.4.2 之后的版本默认值变成了false, 所以我们需要先打开这个配置,才能启用bootstrap的配置。springBoot版本比较新.Spring Boot 2.4版本开始,配置文件加载方式进行了重构.2.4之前的版本: spring.cloud.bootstrap.enabled 默认值是true。1.在pom文件中引入依赖:spring-cloud-starter-bootstrap。2.开启bootstrap。
2024-07-02 17:55:07
931
原创 java 常用的工具
1.zookeeper win客户端:ZooInspector prettyzoo https://www.cnblogs.com/cxygg/p/16303394.html。10.swagger的包 knife4j,springfox-swagger-ui。5.Android反编译三件套 apktool 、dex2jar、jd-gui。6抽数工具 kettle、sqoop、datax、streamSets。8.阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码。
2024-06-19 17:32:24
185
原创 2pc和3pc
在3PC中,当一个节点向协调者发出准备通知时,协调者会等待其他节点的准备通知,如果所有节点都已准备就绪,则协调者会发送准备提交消息,等待节点提交并返回,最后发送提交消息。在2PC中,如果一个节点完成事务的所有操作,它会向协议的协调者发出准备提交请求,协调者会等待所有节点的准备提交请求,然后向所有节点发送提交请求,如果所有节点都能成功提交,则认为整个事务提交成功,否则需要回滚。总的来说,2PC和3PC都是用于保证分布式系统中数据一致性的协议,3PC相对于2PC来说更可靠,但也更加复杂。
2024-06-18 17:45:55
199
原创 java 异常发生原因及解决方式
报错: org.apache.ibatis.binding.BindingException:Invalid bound statement (not found): com.kuan.edu.mapper.xxx.xxx。(1)在Spring Boot配置文件application.proper中添加配置(注意路径要改成你xml所在的地方)第二种就是调用JSON.parse()这个解析方法。(2)maven加载的时候,把java文件夹里面的.java类型文件进行编译,其他类型的文件,并不会加载。
2024-06-18 17:39:14
417
原创 java中callable和future的关系
总的来说就是callable进行运算将结果放入future中,future.get来进行阻塞。
2024-06-17 11:39:33
178
1
原创 dubbo中的负载均衡算法
例如 ABC 三节点有如下权重:{A: 3, B: 2, C: 1} 那么按照最原始的轮询算法,调用过程将变成:A A A B B C。我们发现经过合计权重(3+2+1)轮次后,循环又回到了起点,整个过程中节点流量是平滑的,且哪怕在很短的时间周期内,概率都是按期望分布的。然后生成区间[0,5),[5,8),[8,10],随机范围为0~10,权重越大则概率越大。根据目标集群服务器,处理性能最高的权重越高,处理性能较低的,权重也交低。则按照 A,,A,A,A,A,B,B,B,C,C轮询。
2023-09-07 20:34:23
152
1
原创 @EnableDubbo可以不加吗
在Spring Boot中,使用Dubbo可以不使用@EnableDubbo注解也能使用Dubbo的原因是因为Dubbo官方提供了一个DubboAutoConfiguration自动配置类来自动配置Dubbo的相关组件。因此,即使没有使用@EnableDubbo注解也能使用Dubbo。不过,使用@EnableDubbo注解可以更好地控制Dubbo的相关配置,比如可以通过@EnableDubbo注解中的各种属性来配置Dubbo的注册中心、协议、服务提供者和服务消费者等相关配置。
2023-09-05 23:44:02
456
1
原创 spring中一些常用的接口
其主要作用是收集需要导入的配置类,如果该接口的实现类同时实现EnvironmentAware, BeanFactoryAware ,BeanClassLoaderAware或者ResourceLoaderAware,那么在调用其selectImports方法之前先调用上述接口中对应的方法,如果需要在所有的@Configuration处理完在导入时可以实现DeferredImportSelector接口。Spring容器的顶层接口,实现Bean的创建,获取,生命周期的管理等等;
2023-09-04 20:28:52
242
1
原创 fastjson开启安全模式
方式4:通过fastjson.properties文件配置。方式2:针对某个解析配置。方式3:JVM启动参数。
2023-09-03 23:03:34
3970
2
原创 java 设置session失效以及监听
3.直接在应用服务器中设置,如果是tomcat,可以在tomcat目录下conf/web.xml中找到<session-config>元素,tomcat默认设置是30分钟,只要修改这个值就可以了。4.spring-boot中设置seesion失效,有两种,一种是servlet,一种没有,具体根据spring-boot的版本来定。这里就需要用到监听器了,即当session因为各种原因失效后,监听器就可以监听到,然后执行监听器中定义好的程序就可以了。在一般系统中,也可能需要在监听session做一些操作,
2023-09-03 00:29:05
536
原创 java偏向锁
偏向”的意思是,偏向锁假定将来只有第一个申请锁的线程会使用锁(不会有任何线程再来申请锁),因此,只需要在Mark Word中CAS记录owner(本质上也是更新,但初始值为空),如果记录成功,则偏向锁获取成功,记录锁状态为偏向锁,以后当前线程等于owner就可以零成本的直接获得锁;否则,说明有其他线程竞争,膨胀为轻量级锁。如果不仅仅没有实际竞争,自始至终,使用锁的线程都只有一个,那么,维护轻量级锁都是浪费的。偏向锁的目标是,减少无竞争且只有一个线程使用锁的情况下,使用轻量级锁产生的性能消耗。
2023-09-01 21:11:53
166
1
原创 2>&1解析
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。1.重定向命令列表如下:2.一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向
2021-05-24 21:08:57
148
原创 网址记录
1.Java 8 中的 Streams API 详解https://developer.ibm.com/zh/articles/j-lo-java8streamapi/
2021-03-02 10:41:26
175
原创 java (7z,zip)压缩和解压
1.7z需要引入jar包2.创建工具类CompressUtilspackage com.example.template.file;import lombok.extern.slf4j.Slf4j;import org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry;import org.apache.commons.compress.archivers.sevenz.SevenZFile;import org.apa
2021-03-01 22:31:04
1480
转载 redhat 5.6 svn服务器安装
1. 安装SVN服务器:检查是否已安装# rpm -qa subversion安装SVN服务器# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql这里会报错 This system is not registered to Red Hat Subscription Management. Yo...
2018-08-03 23:22:30
491
转载 redhat6.5更换centos6.5的yum包
1.检查是否安装yum包查看RHEL是否安装了yum,若是安装了,那么又有哪些yum包:[root@syq yum.repos.d]# rpm -qa |grep yum2 删除redhat自带的yum包卸载上面显示的所有yum包:[root@localhost ~]# rpm -qa|grep yum|xargs rpm -e --nodeps(不检查依赖,直接删除rpm包)...
2018-08-03 23:18:04
945
转载 redhat6.5安装mysql8.0
一、到mysql官网下载mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar使用rz -be (如果没安装,使用 yum install lrzsz安装)传到linux,tar -xvf mysql-8.0.11-1.el6.x86_64.rpm-bundle.tar解压 -rw-r--r-- 1 root root 28987588 Apr 9 0...
2018-08-03 23:12:03
2252
mybatistest.7z
2021-03-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人