蔡定努
人前拼实力,人后拼努力
展开
-
日常开发踩坑
【代码】日常开发坑记录。原创 2024-06-03 15:00:33 · 90 阅读 · 0 评论 -
使用docker安装向量数据库milvus
向量数据库是一种特殊的数据库,它以多维向量的形式保存信息。根据数据的复杂性和细节,每个向量的维数变化很大,从几个到几千个不等。这些数据可能包括文本、图像、音频和视频,使用各种过程(如机器学习模型、词嵌入或特征提取技术)将其转换为向量。矢量数据库的主要优点是它能够根据数据的矢量接近度或相似性快速准确地定位和检索数据。这允许基于语义或上下文相关性的搜索,而不是像传统数据库那样仅仅依赖于精确匹配或设置标准。推荐系统:向量数据库可以用于存储用户和物品的特征向量,以便实现个性化推荐。原创 2024-05-11 23:18:01 · 54 阅读 · 0 评论 -
Linux CPU 占用率 100% 排查五步法
Linux 服务器 CPU 占用率达到 100% 且一直居高不下,严重影响业务系统的正常使用,这时候领导让你来排查问题原因,如果不知道该如何下手,就有点尴尬了。当然,除了使用上面的基础方法外,还有很多工具可以直接使用,例如阿里的 Arthas。原创 2023-06-28 12:25:43 · 9707 阅读 · 0 评论 -
SpEL解析对象属性、Map
【代码】SpEL解析对象属性、Map。原创 2023-06-27 13:59:36 · 632 阅读 · 0 评论 -
docker 运行xxl-job-admin
xxl-job-admin 使用docker打包部署原创 2023-04-28 17:23:57 · 260 阅读 · 0 评论 -
springboot中手动管理事务(编程式事务)
【代码】springboot中手动管理事务(编程式事务)原创 2023-03-27 15:19:03 · 1355 阅读 · 0 评论 -
@ConditionalOnProperty使用
Spring boot 中有时候需要控制配置是否生效,使用 @ConditionalOnProperty 注解来控制 @Bean 是否生效。prefix : 是配置前缀,可有可无。name : 是配置名称。完整名称或部分名称,与 prefix 配合使用,与 value 不可同时使用。havingValue : 对比值,与name组合使用,该值与配置中值相同,则配置生效,不相同则配置不生效。matchIfMissing : 缺省值,缺少配置时,是否可以加载。原创 2022-10-18 11:06:54 · 888 阅读 · 0 评论 -
红黑树和二叉树有什么区别
红黑树和二叉树有什么区别?什么是二叉树?什么是红黑树?二叉树(Binary Tree)是指每个节点最多只有两个分支的树结构,即不存在分支大于 2 的节点,二叉树的数据结构如下图所示这是一棵拥有 6 个节点深度为 2(深度从 0 开始),并且根节点为 3 的二叉树二叉树有两个分支通常被称作 “左子树” 和 “右子树”,而且这些分支具有左右次序不能随意地颠倒一棵空树或者满足以下性质的二叉树被称之为二叉查找树若任意节点的左子树不为空,则左子树上所有节点的值均小于它的根节点的值;若任意节点的转载 2022-03-29 19:51:11 · 539 阅读 · 0 评论 -
保证分布式下quartz不重复执行
1. Redis 锁【基于内存、基于数据库均可】 public boolean getLock(String lockId, long millisecond) { Boolean success = redisTemplate.opsForValue().setIfAbsent(lockId, "lock", millisecond, TimeUnit.MILLISECONDS); return success != null && success; }publi原创 2022-02-27 18:47:23 · 944 阅读 · 0 评论 -
JAVA 8 :从永久区(PermGen)到元空间(Metaspace)
本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net本文系翻译:原文 地址你注意到了吗? JDK 8 早期可访问版本已经提供下载了,java 开发人员可以使用 java 8 提供的新的语言和运行特性来做一些实验。其中一个特性就是完全的移除永久代(Permanent Generation (PermGen)),这从 JDK 7 开始 Oracle 就开始行动了,比如:本地化的 String 从 JDK 7 开始就被移除了永久代(Permanent Generation )。JD.转载 2022-02-21 00:56:00 · 1284 阅读 · 0 评论 -
类加载机制之双亲委派
JVM 中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java 中的类加载器是一个重要的 Java 运行时系统组件,它负责在运行时查找和装入类文件中的类。由于 Java 的跨平台性,经过编译的 Java 源程序并不是一个可执行程序,而是一个或多个类文件。当 Java 程序需要使用某个类时,JVM 会确保这个类已经被加载、连接(验证、准备和解析)和初始化。类的加载是指把类的.class 文件中的数据读入到内存中,通常是创建一个字节数组读入.class 文件,然后产生与所加载类对应的 C转载 2022-02-20 23:39:30 · 346 阅读 · 0 评论 -
chrome 并发请求数
一、先上结论:①同一域名下,同一 GET 请求的并发数是 1,也就是说上一个请求结束,才会执行下一个请求,否则置入队列等待发送;②同一域名下,不同 GET/POST 请求的并发数量是 6。当发送的请求数量达到 6 个,并且都没有得到响应时,后面的请求会置入队列等待发送。二、测试1、服务器端服务器端创建了一个 GET 请求的 serve 方法和一个 POST 请求的 serve 方法,方法内容都是保持方法执行时间≥3s。package com.example.demo.controller;转载 2022-02-18 12:00:22 · 1710 阅读 · 0 评论 -
future.get方法阻塞问题的解决,实现按照任务完成的先后顺序获取任务的结果
package com.cdn.mybatis_test.controller;import lombok.SneakyThrows;import java.util.concurrent.CompletableFuture;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/**原创 2021-12-19 18:59:55 · 628 阅读 · 0 评论 -
Spring Boot+SQL_JPA 实战悲观锁和乐观锁
原文链接:https://zzzzbw.cn/article/18最近在公司的业务上遇到了并发的问题,并且还是很常见的并发问题,公司业务就是最常见的 “订单 + 账户” 问题, 算是低级的失误了。由于公司业务相对比较复杂且不适合公开,在此用一个很常见的业务来还原一下场景,同时介绍悲观锁和乐观锁是如何解决这类并发问题的。业务还原首先环境是:Spring Boot 2.1.0 + data-jpa + mysql + lombok数据库设计对于一个有评论功能的博客系统来说,通常会有两个表:1. 文.转载 2021-12-19 01:32:27 · 773 阅读 · 0 评论 -
HashMap 解决 hash 冲突
HashMap 采用一种所谓的 “Hash 算法” 来决定每个元素的存储位置。当程序执行 map.put(String,Obect)方法 时,系统将调用 key的String 的 hashCode() 方法得到其 hashCode 值——每个 Java 对象都有 hashCode() 方法,都可通过该方法获得它的 hashCode 值。得到这个对象的 hashCode 值之后,系统会根据该 hashCode 值来决定该元素的存储位置。存储过程:判断当前确定的索引位置是否存在相同 hashcode 和转载 2021-12-13 12:48:01 · 787 阅读 · 0 评论 -
synchronized 方法锁、对象锁、类锁区别
不加锁的情况package com.example.demo.controller;import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class AdminController { public static void m..原创 2021-11-11 23:42:31 · 341 阅读 · 1 评论 -
Springboot 中统一修改响应头两种方式
Springboot 中统一修改响应头两种方式方式一 :(AOP )package com.cdn.test.ad;/** * @author CaiDingNu * @desc * @date 2021/10/02 21:54 */import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect原创 2021-10-02 22:12:56 · 3175 阅读 · 1 评论 -
Springboot 中动态定义 Bean
bean 定义的方法很多,在所有定义bean的方法中控制即可,本文只是以注解的方式举列,此处的目标Bean为拦截器,也可以实现对拦截器的开关,可以使用注解来控制Bean的创建,或者定义一个变量控制定义Bean 的 方式一、 目录EnableBean.javapackage com.cdn.mul.annotation;import com.cdn.mul.config.Test1;import com.cdn.mul.config.Test2;import com.cdn.mul.co原创 2021-09-12 17:29:20 · 550 阅读 · 0 评论 -
quartz整合springboot
依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> <dependency> <groupId>org.spri原创 2021-08-01 00:19:09 · 133 阅读 · 0 评论 -
springboot 项目启动之后执行方法的三种方式
@Componentpublic class Run implements ApplicationRunner, CommandLineRunner{ @Override public void run(ApplicationArguments args) throws Exception { System.out.println("服务启动RunnerTest ApplicationRunner执行启动加载任务..."); } @Overrid.原创 2021-01-13 20:17:46 · 3100 阅读 · 0 评论 -
springboot+Knif4j 部分配置
本文配置适用于2.X一、pom <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.8</version> </depende原创 2021-01-12 22:44:42 · 308 阅读 · 0 评论 -
spring根据bean的名称获取对象,并调用方法
一、工具@Componentpublic class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext){ Spri.原创 2021-01-06 17:53:05 · 3303 阅读 · 0 评论 -
SpringBoot 声明式事务失效场景
如果声明事务的方法不是public,事务会失效 同一个类中一个没有事务的方法,调用一个有事务的方法时,事务失效 异常被trycatch 捕获,事务失效 数据库引擎要支持事务,mysql数据库,必须设置数据库引擎为InnoDB。 springboot是否开始事务管理,@EnableTransactionManagement(默认开启) 异常类型配置错误 业务和spring事务代码必须在一个线程中 事务传播属性设置错误 Propagati...原创 2020-12-31 15:02:22 · 1062 阅读 · 1 评论 -
通过反射获取类中的所有属性与方法
获取公共属性 //可以随意用四种类加载方式的任意一种获取类对象 实体类 s=new 实体类(); Class c=s.getClass(); //通过类对象获取单个属性 Field f=c.getFiled("属性名");//f为当前指定类属性的file属性 //给对象属性赋值 f.set(s,"值"); //获取属性值 f.get(s); 获取私有属性 实体类 s=new 实体类(); Class c=s.getClass(); Field f=c.getDeclar原创 2020-12-06 23:23:34 · 446 阅读 · 0 评论 -
多线程操作一个变量
package practlce;/** * desc: * author CDN * create 2019-07-23 22:44 * version 1.0.0 */public class TextThread { public static void main(String[] args) { TxtThread2 txtThread2...原创 2019-07-23 23:37:10 · 481 阅读 · 0 评论 -
Java Socket实现文件传输
客户端设计思路:客户端与服务端建立连接,选择客户端本地文件,先将文件名及大小等属性发送给服务端,再将文件通过流的方式传输给服务端。传输的进度打印到控制台中,直到传输完成。服务端设计思路:服务端接收客户端的请求(阻塞式),每接收到一个客户端请求连接后,就新开一个处理文件的线程,开始写入流,将文件到服务器的指定目录下,并与传输过来的文件同名。下面是客户端和服务端的代码实现:客户端代码:...原创 2019-06-08 15:26:37 · 18400 阅读 · 11 评论 -
多线程获取返回值
package com.company;import java.util.ArrayList;import java.util.List;import java.util.concurrent.*;/** * desc: * author CDN * create 2019-11-08 22:48 * version 1.0.0 */public class MyTask...原创 2019-11-08 23:30:10 · 424 阅读 · 0 评论 -
IO流学习
package main.java.com;import java.io.*;/** * desc: * author CDN * create 2019-08-09 22:28 * version 1.0.0 */public class IoTest { public static void main(String[] args) throws IOExcepti...原创 2019-06-07 22:57:30 · 129 阅读 · 0 评论 -
springboot 使用fastjson自定义序列化和反序列化
注意:本文以序列化枚举转换为例一、引入fastjson依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.58</version> </dependency>二、配置fastjso原创 2020-09-10 22:50:49 · 3781 阅读 · 0 评论 -
spring boot 中jackson自定义序列化和反序列化
spingmvc使用httpmessageconverter接口来转换http请求和响应。如果需要添加和自定义转换器,则可以使用spring boot的HttpMessageConverters类;任何存在于上下文忠的HttpMessageConverter的ben都会被添加到转换器列表中。如果想使用Jackson对json进行序列化和反序列化,则可能需要编写自己的JsonSerializer和JsonDeserializer类。使用spring boot的@JsonComponent注释。使用@J原创 2020-09-10 22:41:30 · 3718 阅读 · 1 评论 -
线程的生命周期,继承Thread创建线程和实现Runnable创建线程的方式对象锁的对比
线程的生命周期:1.新建:使用new创建对象, 2.准备就绪:调用了start()方法,但还没有抢占到CPU资源 3.运行:调用了start()方法并抢占到了cpu资源,开始执行 4.阻塞:调用 sleep()/wait()方法,使线程让出CPU资源并进入休眠状态,可调用notity()方法使线程进入到准备就绪状态 5.销毁:run方法执行结束或调用 stop()方法后,线程已经不在使...转载 2018-07-29 00:40:51 · 299 阅读 · 0 评论 -
数据库
今日任务:组函数GROUP BY子句HAVING子句子查询DMLDDL=======================================================================组函数:单行函数:每一行会得到一个结果组函数(多行函数):一组得到一个结果,默认情况下所有的数据是一组常用组函数:统计SUM():求和AVG():求平均MAX(...原创 2018-07-13 00:23:26 · 194 阅读 · 0 评论 -
IO理解
原创 2018-07-12 19:16:57 · 317 阅读 · 0 评论 -
Java面向对象编程
原创 2018-07-12 19:15:40 · 184 阅读 · 0 评论 -
List去重
1. 循环list中的所有元素然后删除重复public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j...原创 2018-07-12 01:47:46 · 179 阅读 · 0 评论 -
Java TCP使用Socket进行网络图片传送
本文演示,使用Socket进行网络图片传送,实现客户端的client.bmp文件上传到服务端。1)客户端,上传client.bmp图片给服务端,并接受服务端返回的“上传成功”消息。2)服务端,接受客户端的图片并保存为server.bmp,同时给客户端发送“上传成功”消息。 客户端,代码如下: package upload.photo.client; ...转载 2018-07-23 16:09:34 · 4984 阅读 · 0 评论 -
Eclipse中serverRuntime Environment中没有Tomcat选项
Eclipse版本: Eclipse Java OxygenTomcat版本:Tomcat8今天在云服务器上安装eclipse中的JavaEE插件后,配置Tomcat。发现在添加 New Server Runtime Environment时没有Tomcat的选项。原因:eclipse版本不全,缺少javaee组件网上也没有相应的比较合适的解决方法,我的解决方法是:在Eclip...原创 2018-08-14 19:08:48 · 1535 阅读 · 0 评论 -
java调用HTTP接口(Get请求和Post请求)
package com.company;import java.io.*;import java.net.HttpURLConnection;import java.net.URL;/** * 功能简述: * * @author caidingnu * @create 2019/03/27 13:46 * @since 1.0.0 */public class HTTP...原创 2019-03-29 11:05:50 · 6988 阅读 · 0 评论 -
springboot通过继承WebMvcConfigurationSupport 实现打开页面,页面跳转
package com.oceam.controller;import org.springframework.context.annotation.Configuration;import org.springframework.core.Ordered;import org.springframework.web.servlet.config.annotation.ResourceH...原创 2019-03-26 16:50:36 · 1252 阅读 · 0 评论 -
SpringBoot使用AOP统一处理Web请求日志
package com.oceam.utils;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.Signature;import org.aspectj.lang.annotation.*;import org.aspectj.la...原创 2019-03-12 23:46:06 · 241 阅读 · 0 评论