随笔分类 - JAVA
java 基本功
发表于 2022-08-18 09:53阅读次数:571评论次数:0
摘要:Feign 与 OpenFeign 2022-08-03 21:51·BUG弄潮儿 1. 什么是Feign Netflix Feign 是 Netflix 公司发布的一种实现负载均衡和服务调用的开源组件。Spring Cloud 将其与 Netflix 中的其他开源服务组件(例如 Eureka、Ri
阅读全文 »
发表于 2022-08-17 09:33阅读次数:338评论次数:0
摘要:你想要的Docker自动部署Spring Boot就在这 2020-04-14 22:15·木讷大叔爱运维 简介 Spring Boot的快速开发特性,正受越来越多Java开发者的欢迎,配合supervisord可以轻松使其作为一个独立的服务运行。而随着Docker的流行,其轻量级、进程级、资源隔离
阅读全文 »
发表于 2022-08-17 09:32阅读次数:776评论次数:0
摘要:一个示例回顾Future 一些业务场景我们需要使用多线程异步执行任务,加快任务执行速度。 JDK5新增了Future接口,用于描述一个异步计算的结果。 虽然 Future 以及相关使用方法提供了异步执行任务的能力,但是对于结果的获取却是很不方便,我们必须使用Future.get()的方式阻塞调用线程
阅读全文 »
发表于 2022-08-02 10:37阅读次数:1331评论次数:0
摘要:一、jcmd 用法 1.1 基本知识 jcmd 是在 JDK1.7 以后,新增了一个命令行工具。 jcmd 是一个多功能的工具,相比 jstat 功能更为全面的工具,可用于获取目标 Java 进程的性能统计、JFR、内存使用、垃圾收集、线程堆栈、JVM 运行时间,也可以手动执行 GC、导出(TODO
阅读全文 »
发表于 2022-07-29 10:16阅读次数:2080评论次数:0
摘要:通常在springboot应用中,对接口的安全性有要求时都会对请求参数做一些签名验证,这些验证逻辑一般都是统一放到过滤器或拦截器里,这样就不用每个接口都去重复编写验签的逻辑。对于接口有可能接收不同类型的数据,对于表单数据来说,只要调用request的getParameterMap就能全部取出来。对于
阅读全文 »
发表于 2022-07-29 10:08阅读次数:7028评论次数:0
摘要:springboot gateway 记录请求和响应日志 spring cloud gateway是基于webflux的项目,因而不能跟使用spring mvc一样直接获取request body,因此需要重新构造再转发。 如果我们在spring cloud gateway 封装之前读取了一次req
阅读全文 »
发表于 2022-07-29 09:49阅读次数:250评论次数:0
摘要:昨天,一位球友问我能不能给他解释一下 @SpringBootApplication 注解是什么意思,还有 Spring Boot 的运行原理,于是我就带着他扒拉了一下这个注解的源码,还有 SpringApplication 类的 run() 方法的源码,一下子他就明白了。 你别说,看源码的过程还真的
阅读全文 »
发表于 2022-07-29 09:46阅读次数:758评论次数:0
摘要:最近项目对接第三方时,遇到一个SM2解密问题,拿到第三方的密文后解密失败。首先想到C1C2C3 和C1C3C2的问题,于是......,半个小时后,决定要来第三方的sdk。 发现他们sdk依赖的jar是1.46版本,而我的项目依赖的是1.64。 <dependency><groupId>org.bo
阅读全文 »
发表于 2022-07-27 16:50阅读次数:154评论次数:0
摘要:1、创建异步对象 CompletableFuture 提供了四个静态方法来创建一个异步操作 1 #runAsync 无返回值 2 public static CompletableFuture<Void> runAsync(Runable runable) 3 public static Compl
阅读全文 »
发表于 2022-07-15 16:15阅读次数:86评论次数:0
摘要:一个注解搞定 SpringBoot 接口防刷,还有谁不会? 2022-07-14 13:51·一个卑微的程序猿 一,技术要点:springboot的基本知识,redis基本操作 首先是写一个注解类: 接着就是在Interceptor拦截器中实现: 再把Interceptor注册到springboot
阅读全文 »
发表于 2022-07-13 10:26阅读次数:247评论次数:0
摘要:利用StopWatch监控Java代码运行时间和分析性能 一、背景 有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,一般我们检测某段代码执行的时间,都是以如下方式来进行的: public static void main(St
阅读全文 »
发表于 2022-07-12 15:56阅读次数:102评论次数:0
摘要:问题 有两个线程,A 线程向一个集合里面依次添加元素“abc”字符串,一共添加十次,当添加到第五次的时候,希望 B 线程能够收到 A 线程的通知,然后 B 线程执行相关的业务操作。线程间通信的模型有两种:共享内存和消息传递,以下方式都是基本这两种模型来实现的。 一、使用 volatile 关键字 基
阅读全文 »
发表于 2022-07-04 09:47阅读次数:332评论次数:0
摘要:事故描述 从6点32分开始少量用户访问app时会出现首页访问异常,到7点20分首页服务大规模不可用,7点36分问题解决。 整体经过 6:58 发现报警,同时发现群里反馈首页出现网络繁忙,考虑到前几日晚上门店列表服务上线发布过,所以考虑回滚代码紧急处理问题。 7:07 开始先后联系XXX查看解决问题。
阅读全文 »
发表于 2022-06-09 10:03阅读次数:462评论次数:0
摘要:前言 对于从事java开发工作的小伙伴来说,spring框架肯定再熟悉不过了。spring给开发者提供了非常丰富的api,满足我们日常的工作需求。 如果想要创建bean实例,可以使用@Controller、@Service、@Repository、@Component等注解。 如果想要依赖注入某个对
阅读全文 »
发表于 2022-06-09 10:01阅读次数:181评论次数:0
摘要:前言 最近review别人代码的时候,看到了一些@Autowired不一样的用法,觉得有些意思,特定花时间研究了一下,收获了不少东西,现在分享给大家。 也许@Autowired比你想象中更强大。 1. @Autowired的默认装配 我们都知道在spring中@Autowired注解,是用来自动装配
阅读全文 »
发表于 2022-05-06 09:25阅读次数:76评论次数:0
摘要:关于这个问题,需要从几个方面来回答。 首先,我简单说一下类的加载机制,就是我们自己写的java源文件到最终运行,必须要经过编译和类加载两个阶段。 编译的过程就是把.java文件编译成.class文件。 类加载的过程,就是把class文件装载到JVM内存中,装载完成以后就会得到一个Class对象,我们
阅读全文 »
发表于 2022-04-25 11:23阅读次数:5031评论次数:0
摘要:文章目录 IDEA更改主题插件——Material Theme UI 一、安装 二、设置 1. 主设置 (1) 主题 (2) 突出颜色 2. 高级设置之选项卡 3. 高级设置之compact 4. 高级设置之图标(icons) 关于icons不能使用问题 Atom Material Icons 插件
阅读全文 »
发表于 2022-03-18 16:58阅读次数:754评论次数:0
摘要:有这么一个业务场景:当用户注册后,发送邮件到其邮箱提示用户进行账号激活,且注册成功的同时需要赠送新人用户体验卡券。 业务有了,那么问题也就来了。What? 问题…问题?我听说你有问题? 来拔刀吧,互相伤害啊。 考虑以下两个问题:如何注册成功立即发送邮件、赠送体验卡? 如何同时向用户邮箱发送激活邮件、
阅读全文 »
发表于 2021-08-11 13:57阅读次数:3923评论次数:2
摘要:前言: 谈到事件,接触过前端或GUI编程(JavaScript,Swing)的同学应该有较深刻印象。如事件源、事件的监听、回调等概念应该耳熟能详。而在Web应用程序中则很少用到事件。但在Web应用程序中,也可以轻松实现面向事件的编程。 1、为什么需要面向事件编程 在本文中,将基于Spring框架
阅读全文 »
发表于 2021-08-04 09:37阅读次数:163评论次数:0
摘要:场景 随着互联网应用的深入,很多传统行业也都需要接入到互联网。我们公司也是这样,保险核心需要和很多保险中介对接,比如阿里、京东等等。这些公司对于接口服务的性能有些比较高的要求,传统的核心无法满足要求,所以信息技术部领导高瞻远瞩,决定开发互联网接入服务,满足来自性能的需求。 概念 Completion
阅读全文 »