蔡定努
人前拼实力,人后拼努力
展开
-
InheritableThreadLocal vs TransmittableThreadLocal 深入理解与使用场景
即使线程池复用了子线程,它仍然能获取到正确的值。TransmittableThreadLocal 的原理是:每次任务提交时,它会把父线程的 ThreadLocal 值传递给子线程(无论子线程是新建的还是复用的)。则适用于更加复杂的场景,尤其是当我们使用线程池时,希望父线程的上下文信息(例如用户信息、事务ID等)能够传递给子线程,无论子线程是新建的还是复用的。适用于一些简单的场景,比如普通的多线程编程中,父线程需要将 ThreadLocal 值传递给子线程,且子线程不需要在线程生命周期中更新值的场景。原创 2024-09-12 18:31:22 · 48 阅读 · 0 评论 -
Jenkins+docker+springboot 一键自动部署项目步骤
在 springboot 项目根目录新建一个名为 Dockerfile 的文件,注意没有后缀名,其内容如下:(大致就是使用 jdk8,把 jar 包添加到 docker 然后运行 prd 配置文件)因为我们项目和 jenkins 在同一台服务器,所以我们用 shell 脚本运行项目,原理既是通过 dockerfile 打包镜像,然后 docker 运行即可。点击正在构建的任务,或者点击任务名称,进入详情页面,查看控制台输出,看是否能成功打成 jar 包。】,输入仓库地址,添加凭证,选择好凭证即可。原创 2024-09-02 10:32:09 · 657 阅读 · 0 评论 -
IDEA插件开发中JavaProgramPatcher的使用
JavaProgramPatcher是设置jvm参数的,点击启动项目的时候会调用。本文介绍插件开发中的基本使用原创 2024-09-01 21:42:32 · 273 阅读 · 0 评论 -
使用 Prometheus 监控 Spring Boot 应用
前面我们在 Spring Boot 项目中集成 Actuator 和 Micrometer 实现了 Spring Boot 应用监控,基本上覆盖 JVM 各个层间的参数指标,并且配合 Grafana Dashboard 模板基本可以满足我们日常对 Spring Boot 应用的监控。但是,对于核心业务是否也能够监控它们的执行情况呢?答案是肯定的,Micrometer 支持自定义监控指标,实现业务方面的数据监控。例如统计访问某一个 API 接口的请求数,统计实时在线人数、统计实时接口响应时间等。原创 2024-07-31 11:02:49 · 67 阅读 · 0 评论 -
docker+[nginx] 部署nacos2.x 集群
便于直接使用容器名连接mysql,如果不创建,连接mysql直接使用ip。nginx 【可选,见文末】原创 2024-06-27 17:22:30 · 198 阅读 · 0 评论 -
发布 jar 包到 maven 中央仓库
目前开发基本都是以maven或者gradle的方式,直接引入依赖包即可,那么该咋那么发布我们自己的jar包到maven仓库,让别人使用呢?本文适用于2024.3之后的步骤。原创 2024-06-03 23:05:06 · 377 阅读 · 0 评论 -
日常开发踩坑
【代码】日常开发坑记录。原创 2024-06-03 15:00:33 · 107 阅读 · 0 评论 -
Spel表达式使用案例
【代码】Spel表达式使用案例。原创 2024-06-02 00:26:35 · 82 阅读 · 0 评论 -
Springboot整合向量数据库Milvus
构建一个MilvusClient工厂类查询工具封装配置Range Search 范围查询Range Search 即范围搜索。不同于 KNN Search 返回最相似的 TOP-K 个结果,Range Search 会返回向量距离落于某一区间的 TOP-K 个结果。那么,何时选择 Range Search 而非 Top-K 搜索?Range Search 最典型的应用场景就是推荐系统。比如商品推荐,一个好的推荐系统,返回的应该是与用户点击的商品有一定相似度,但又不太相似的结果。太相似或太不相原创 2024-05-12 23:29:42 · 418 阅读 · 1 评论 -
使用docker安装向量数据库milvus
向量数据库是一种特殊的数据库,它以多维向量的形式保存信息。根据数据的复杂性和细节,每个向量的维数变化很大,从几个到几千个不等。这些数据可能包括文本、图像、音频和视频,使用各种过程(如机器学习模型、词嵌入或特征提取技术)将其转换为向量。矢量数据库的主要优点是它能够根据数据的矢量接近度或相似性快速准确地定位和检索数据。这允许基于语义或上下文相关性的搜索,而不是像传统数据库那样仅仅依赖于精确匹配或设置标准。推荐系统:向量数据库可以用于存储用户和物品的特征向量,以便实现个性化推荐。原创 2024-05-11 23:18:01 · 92 阅读 · 0 评论 -
docker安装向量数据库milvus
向量数据库是一种特殊的数据库,它以多维向量的形式保存信息。根据数据的复杂性和细节,每个向量的维数变化很大,从几个到几千个不等。这些数据可能包括文本、图像、音频和视频,使用各种过程(如机器学习模型、词嵌入或特征提取技术)将其转换为向量。矢量数据库的主要优点是它能够根据数据的矢量接近度或相似性快速准确地定位和检索数据。这允许基于语义或上下文相关性的搜索,而不是像传统数据库那样仅仅依赖于精确匹配或设置标准。推荐系统:向量数据库可以用于存储用户和物品的特征向量,以便实现个性化推荐。原创 2024-05-11 23:12:27 · 510 阅读 · 0 评论 -
使用YOURLS生成短链(统计点击数)
http://ip+端口/admin。原创 2024-04-26 17:57:30 · 132 阅读 · 2 评论 -
MDC方式实现简单链路追踪
MDC 方式实现日志链路追踪。原创 2023-10-07 15:48:26 · 184 阅读 · 0 评论 -
Linux CPU 占用率 100% 排查五步法
Linux 服务器 CPU 占用率达到 100% 且一直居高不下,严重影响业务系统的正常使用,这时候领导让你来排查问题原因,如果不知道该如何下手,就有点尴尬了。当然,除了使用上面的基础方法外,还有很多工具可以直接使用,例如阿里的 Arthas。原创 2023-06-28 12:25:43 · 9995 阅读 · 0 评论 -
SpEL解析对象属性、Map
【代码】SpEL解析对象属性、Map。原创 2023-06-27 13:59:36 · 681 阅读 · 0 评论 -
Spring 中 AOP 的实现原理——动态代理
原文地址 https://www.cnblogs.com/tuyang1129/p/12878549.htmlSpring AOP 的实现原理Spring的AOP实现原理其实很简单,就是通过动态代理实现的。如果我们为Spring的某个bean配置了切面,那么Spring在创建这个bean的时候,实际上创建的是这个bean的一个代理对象,我们后续对bean中方法的调用,实际上调用的是代理类重写的代理方法。而Spring的AOP使用了两种动态代理,分别是 JDK 的动态代理,以及 CGLib 的动态代理。转载 2021-05-23 14:49:44 · 3193 阅读 · 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 · 1335 阅读 · 0 评论 -
springboot整合flink cdc监听数据库数据
【代码】springboot整合flink cdc监听数据库数据。原创 2023-03-03 16:18:12 · 1606 阅读 · 7 评论 -
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 · 646 阅读 · 0 评论 -
Springboot整合jpa
一、SpringBootData JPA 介绍SpringData:其实 SpringData 就是 Spring 提供了一个操作数据的框架。而 SpringData JPA 只是 SpringData 框架下的一个基于 JPA 标准操作数据的模块。 SpringData JPA:基于 JPA 的标准数据进行操作。简化操作持久层的代码。只需要编写接口就可以。二、SpringBoot 整合 SpringData JPA1、导入 maven 依赖 在原有的 SprigBoot 的 maven 依赖的原创 2021-06-24 17:19:46 · 106 阅读 · 0 评论 -
springboot~yml里@ConfigrationProperties获取自定义配置
原创 2019-10-10 23:25:44 · 369 阅读 · 0 评论 -
docker 运行xxl-job-admin
xxl-job-admin 使用docker打包部署原创 2023-04-28 17:23:57 · 291 阅读 · 0 评论 -
Spring5:@Autowired注解、@Resource注解和@Service注解
原创 2019-06-26 21:52:49 · 240 阅读 · 0 评论 -
Spring、Springboot中事务传播机制(事物嵌套)
Spring、Springboot中事务传播机制(事物嵌套)事务传播机制:事务的传播行为是针对嵌套事务而言。即是针对(需要事务的业务方法)调用(需要事务的业务方法)。以下案例的业务方法在不同的类下:注意事项以下案例的业务方法在不同的类下:在同一个类下面不同的方法就算都有事务,调用的方法事务都是不会生效的。意思是在A类的a方法调用b方法,a,b方法均有事务,直接调用b方法,事务是不会生效的。原因是spring事务处理实际是基于动态代理生成类进行事务管理的,而直接调用b方法,调用的实际是当前类的原创 2021-07-24 23:51:48 · 714 阅读 · 1 评论 -
Springboot中下划线转驼峰配置
1、在application.properties中加上即可#开启驼峰命名转换mybatis.configuration.map-underscore-to-camel-case=true2、sql打印#打印sql(语句),方便调试mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOu...原创 2019-06-28 15:37:54 · 10800 阅读 · 1 评论 -
jenkins部署springboot步骤
jenkins部署springboot原创 2023-03-12 16:45:02 · 420 阅读 · 2 评论 -
jenkins+docker部署springboot项目
jenkins+docker部署springboot原创 2023-03-13 17:24:27 · 741 阅读 · 0 评论 -
springboot 中 session共享
数据共享可以直接存储在redis,此处主要讲的是redis实现共享session。springboot中利用redis实现session共享只需要引入两个依赖一、依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artif.原创 2020-10-12 17:31:15 · 336 阅读 · 0 评论 -
springboot中配置addResourceHandler和addResourceLocations,使得可以从磁盘中读取图片、视频、音频等
磁盘路劲:2 、代码:package com.springboot.demo;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;import org.springframework.web.s...原创 2019-09-21 22:12:26 · 2505 阅读 · 2 评论 -
Spring Boot 页面跳转视图解析Thymeleaf和FreeMarker详解
最近看的springboot 在网上看到了很多教程,跳转有很多方法,在这里,我记录了三种,供大家参考spring boot 在springmvc的视图解析器方面就默认集成了ContentNegotiatingViewResolver和BeanNameViewResolver,在视图引擎上就已经集成自动配置的模版引擎,如下: 1. FreeMarker 2. Groovy 3. Thyme...转载 2018-12-21 01:21:39 · 898 阅读 · 0 评论 -
保证分布式下quartz不重复执行
基于内存Redis 锁 public boolean getLock(String lockId, long millisecond) { Boolean success = redisTemplate.opsForValue().setIfAbsent(lockId, "lock", millisecond, TimeUnit.MILLISECONDS); return success != null && success; }public void r原创 2022-01-03 18:49:41 · 960 阅读 · 0 评论 -
SpringBoot 处理跨域请求的方式
一、第一种方式:1、在需要跨域的类或方法上方增加注解@CrossOrigin,只针对单个方法或类有效,适用于只有个别方法需要跨域的情况。@RestController@CrossOriginpublic class UserController { @RequestMapping(method = RequestMethod.POST) @CrossOrigin public User create(@RequestBody @Validated User u原创 2020-06-25 00:28:35 · 271 阅读 · 0 评论 -
springboot+mybatis双数据源配置及事务处理
主数据源配置副数据库配置事务-----------------------主数据源事务2:副数据源demo地址:https://download.csdn.net/download/caidingnu/11646922原创 2019-09-01 15:16:30 · 530 阅读 · 2 评论 -
@ConditionalOnProperty使用
Spring boot 中有时候需要控制配置是否生效,使用 @ConditionalOnProperty 注解来控制 @Bean 是否生效。prefix : 是配置前缀,可有可无。name : 是配置名称。完整名称或部分名称,与 prefix 配合使用,与 value 不可同时使用。havingValue : 对比值,与name组合使用,该值与配置中值相同,则配置生效,不相同则配置不生效。matchIfMissing : 缺省值,缺少配置时,是否可以加载。原创 2022-10-18 11:06:54 · 946 阅读 · 0 评论 -
springboot 动态数据源(一)(Aop+自定义注解方式)
原理:首先把读多个数据源加载(存储到)ThreadLocal中,设置默认数据源,当我们需要切换数据源的时候,在相应的方法上添加自定义注解,利用Aop的前置增强在请求之前进行数据源切换,请求完成之后,利用Aop的后置增强把数据源重置为默认数据源注意:为了实现动态数据源,我们重新创建了SqlSessionFactoryBean,所以会导致application.yml中的mybatis的一些配置失效,比如 mapper-locations,所以这些配置一并也要在创建SqlSessionFactoryB.原创 2020-07-09 23:11:37 · 549 阅读 · 0 评论 -
Springboot 获取所有的RequestMaping值
public class Test{@Autowired ApplicationContext applicationContext; @PostConstruct public void cdn() { // ------- 获取类上的 RequestMaping Map<String, Object> beansWithAnnotation1 = applicationContext.getBeansWithAnnota.原创 2021-06-26 01:43:40 · 825 阅读 · 0 评论 -
springboot中多环境二(yml 文档块)
idea中指定环境java -jar 指定环境原创 2020-03-02 18:17:10 · 390 阅读 · 0 评论 -
javaweb中不同项目的引用
原创 2019-09-29 22:48:30 · 266 阅读 · 0 评论 -
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 · 560 阅读 · 0 评论 -
spring使用set方法注入的写法
原创 2019-09-27 00:18:10 · 758 阅读 · 0 评论