- 博客(21)
- 收藏
- 关注
原创 客户端连接MySQL(8.0)出错(caching_sha2_password)
客户端连接MySQL出现Authentication plugin 'caching_sha2_password' cannot be loaded的解决方法
2022-06-22 11:33:32
856
转载 SpringBoot(二) 启动分析JarLauncher
我们在开发过程中,使用 java -jar you-jar-name.jar 命令来启动应用,它是如何启动?以及它如何去寻找 .class 文件并执行这些文件?
2022-06-02 21:28:30
633
转载 SpringBoot(一) 初识
从本篇文章开始,记录学习 SpringBoot 框架在实践,源码方面的知识,本节是第一篇,因此不涉及相关复杂知识的学习。
2022-06-02 21:25:19
37
转载 【转】Java 运行时动态编译源代码原理和实现
编译,一般来说就是将源代码转换成机器码的过程,比如在C语言中中,将C语言源代码编译成a.out,,但是在Java中的理解可能有点不同,编译指的是将java 源代码转换成class字节码的过程,而不是真正的机器码,这是因为中间隔着一个JVM。虽然对于编译的理解不同,但是编译的过程基本上都是相同的。但是我们熟悉的编译大都是点击一下Eclipse或者Intellij Idea的Run或者Build按钮,但是在点击后究竟发生什么?其实我没仔细了解过,只是知道这个程序运行起来了,但是如果你使用过javac命令去编译代
2022-05-27 10:46:56
1369
1
原创 maven-shade-plugin部分实践
Jar 类型Executable Jar包含所有依赖包的 jar 包Uber Jar包含所有依赖包的 jar 包Fat jar包含所有依赖包的 jar 包Shade jar/Shadow jar提供对某些依赖包进行重命名的功能。重命名的过程在这里可以称为 Shade(着色)。Java 代码中的所有引用在重新定位后都使用被修改后的包名。这样,通过修改包名,完全避免了依赖性包类冲突的问题。<build> <plugins> <plugin&
2022-03-18 16:35:09
473
转载 【netty时间轮】HashedWheelTimer
转载:https://juejin.cn/post/6910068006244581390/* * Copyright 2012 The Netty Project * * The Netty Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the Lice
2022-01-29 15:02:40
324
原创 RestTemplate负载均衡过程
RestTemplate如何使用负载均衡过程使用方式通常会有如下使用,加上@LoadBalanced注解使restTemplate具有负载均衡能力@LoadBalanced@BeanRestTemplate restTemplate() { return new RestTemplate();}先看一下LoadBalanced注解@Target({ ElementType.FIELD, ElementType.PARAMETER, ElementType.METHOD })@Re
2021-10-22 12:16:30
1890
原创 springboot配置类自动加载机制
简单介绍一下springboot是如何自动识别加载spring.factories里的EnableAutoConfigurationspringboot项目启动类都会使用@SpringBootApplication(或是@EnableAutoConfiguration)注解。而@SpringBootApplication注解实际上也使用了@EnableAutoConfiguration,如下@Target(ElementType.TYPE)@Retention(RetentionPolicy.RU.
2021-09-11 15:50:56
726
原创 BridgeMethod【桥接方法】
桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节码和 1.5 版本前的字节码相兼容,由编译器自动生成的方法。可以通过Method.isBridge()方法来判断一个方法是否是桥接方法,在字节码中桥接方法会被标记为ACC_BRIDGE和ACC_SYNTHETIC从jvm规范中截取的两条记录,可以看到,ACC_BRIDGE表示方法是一个bridge method,而ACC_SYNTHETIC则表示该方法不在源码中展示。Flag NameValueInterpreta
2021-09-04 20:29:38
297
原创 类初始化和接口初始化的一点疑惑
接口与类真正有所区别的是前面讲述的六种“有且仅有”需要开始初始化场景中的第三种:当一个类在初始化时,要求其父类全部都已经初始化过了,但是一个接口在初始化时,并不要求其父接口全部都完成了初始化,只有在真正使用到父接口的时候(如引用接口中定义的常量)才会初始化。 ——《深入理解Java虚拟机(第三版):JVM高级特性与最佳实践》但是文中又指出:引用类中的常量不会导致类被初始化,因为编译阶段已经将常量移动到常量池中了有些疑惑,是不是冲突呢?不过仔细看了下之前的内容,文中也提到常量池中只能.
2021-08-29 19:05:25
177
原创 Spring的refresh(一)
本文主要介绍下refresh方法中调用的invokeBeanFactoryPostProcessors(beanFactory)方法。先看下源码:/** * Instantiate and invoke all registered BeanFactoryPostProcessor beans, * respecting explicit order if given. * <p>Must be called before singleton instantiation. */
2021-08-28 18:08:05
91
原创 spring引入servicebean
说明时序图如何引入ServiceBean自定义spring标签通过源码串联一下整个流程,只关注下关键代码org.springframework.context.support.AbstractApplicationContext@Overridepublic void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMon...
2021-08-14 22:08:11
329
原创 基于consul与ribbon灰度的问题
实现方案描述所有服务都会注册到consul上,灰度实例注册到consul上时打上一个tag,有请求打过来时根据配置的规则判断是否需要进行灰度处理,若需要灰度处理,则进行负载均衡时根据tag进行过滤,获取指定灰度tag的实例进行流量转发。遇到的问题当使用灰度实例进行压测时影响到了正常实例,导致流量分布不均,个别实例CPU负载较高,其他实例CPU负载下降明显。问题定位默认IRule实现com.netflix.loadbalancer.ZoneAvoidanceRule的父类com.net
2021-08-01 17:50:39
566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人