- 博客(126)
- 资源 (24)
- 收藏
- 关注

原创 java线上问题排查基本命令
java命令启动java应用程序。它通过启动Java运行时环境(JRE)、加载指定的类并调用该类的main()方法来实现这一点。javap是 Java class文件分解器,可以反编译,也可以查看java编译器生成的字节码。用于分解class文件。javac 是java语言编程编译器。全称java compiler。javac工具读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件。javac 可以隐式编译一些没有在命令行中提及的源文件。用 -verbose 选项可跟踪自动编译。
2023-06-20 17:11:17
2007

原创 ClickHouse小记
ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用 C++语言编写,主要用于在线分析处理查询(OLAP),能够使用 SQL 查询实时生成分析数据报告。
2023-04-08 10:02:22
892

原创 设计模式小记
对类来说的,即一个类应该只负责一项职责。如类 A 负责两个不同职责:职责 1,职责 2。当职责 1 需求变更而改变 A 时,可能造成职责 2 执行错误,所以需要将类 A 的粒度分解为 A1,A2。
2023-04-03 12:11:50
389

原创 ShardingSphere小记
Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。Apache ShardingSphere 设计哲学为 Database Plus,旨在构建异构数据库上层的标准和生态。它关注如何充分合理地利用数据库的计算和存储能力,而并非实现一个全新的数据库。它站在数据库的上层视角,关注它们之间的协作多于数据库自身。
2023-03-23 15:32:18
348

原创 Sentinel规则使用nacos作为持久化
在后端 com.alibaba.csp.sentinel.dashboard.controller.v2.FlowControllerV2 中指定对应的 bean 即可开启 Nacos 适配。在com.alibaba.csp.sentinel.dashboard.rule.nacos路径下创建NacosProperties.java文件,内容如下。文件夹下 com.alibaba.csp.sentinel.dashboard.rule.nacos 包下的类移动到。
2023-03-21 16:12:16
501
1

原创 利用mysql-binlog恢复数据
2、模拟删除:DELETE FROM sys_dict_data WHERE dict_type=‘sys_oper_type’–start-datetime: 读取指定时间之后的日志,时间格式:yyyy-MM-dd HH:mm:ss。–stop-datetime: 读取指定时间之前的日志,时间格式:yyyy-MM-dd HH:mm:ss。-v, --verbose:显示伪sql语句,-vv可以为sql语句添加备注。-r, --result-fil: 把日志输出到指定文件。-o:跳过前N行日志。
2021-09-09 18:15:48
563

原创 动态代理-jdk、cglib、javassist
代理静态代理 (不做说明)动态代理动态代理jdkcglibjavassist项目截图spring源码环境搭建jdk代码如下 :JdkClient.java : 代理测试类JdkUserProxy.java : 代理实现类UserService.java : 测试-接口类UserServiceImpl.java : 测试-实现类JdkClientpackage com.proxy.jdk;import java.lang.reflect..
2021-05-19 11:02:36
360
1

原创 springmvc[1]-HandlerInterceptor、ResponseBodyAdvice
拦截器执行顺序HandlerInterceptor.preHadnleTestController.testResponseBodyAdvice.supportsResponseBodyAdvice.beforeBodyWriteHandlerInterceptor.postHandleHandlerInterceptor.afterCompletion代码如下 :TestController.java : 测试controllerAppMvcConfig.java : 配.
2021-05-18 14:25:31
551

原创 spring[7]-使用ImportBeanDefinitionRegistrar、JDK代理、FactoryBean模拟mybatis原理
简介使用ImportBeanDefinitionRegistrar、JDK代理、FactoryBean模拟mybatis原理知识点ImportBeanDefinitionRegistrarJDK代理FactoryBean@interfacemybatis的极简单的知识代码如下 :UserDao.java : 使用mybatis的mapperProxyTest.java : 测试类MyImportBeanDefinition.java : 使用 ImportBea.
2021-05-13 19:21:02
265
1

原创 spring[1]-使用ImportBeanDefinitionRegistrar自定义注册bean(基于源码)
简介 :ImportBeanDefinitionRegistrar类只能通过其他类@Import的方式来加载,通常是启动类或配置类。使用@Import,如果括号中的类是ImportBeanDefinitionRegistrar的实现类,则会调用接口方法,将其中要注册的类注册成bean。实现该接口的类拥有注册bean的能力。扩展 : 将类交给spring管理方式 :@Componet@Service等扩展 : 将对象交给spring管理方式:@Bean@Beanpublic.
2021-05-13 15:05:15
998
3

原创 自定义springboot-starter
Spring Boot 最强大的功能就是把我们常用的场景抽取成了一个个Starter(场景启动器),我们通过引入Spring Boot为我提供的这些场景启动器,我们再进行少量的配置就能使用相应的功能。即使是这样,SpringBoot也不能囊括我们所有的使用场景,往往我们需要自定义Starter,来简化我们对Spring Boot的使用。项目截图项目搭建流程1. 新建maven项目custome-starter新建项目,不做说明,自己新建即可groupId : com.custome.st.
2021-05-08 11:20:50
172
1

原创 自定义classloader并实现热部署-使用loadClass
需求如下:可在前端新增、修改java代码,并可实现服务不重启的前提下进行代码的部署运行。相当于:可实现java代码的热部署。代码如下:ClassLoaderTest: 自定义classloader测试类ClazzCache: 自定义ClassLoader缓存类CustomCompiler: 自定义编译器CustomClassLoader: 自定义ClassLoaderCustomClassLoaderParam: 自定义ClassLoader包装类(不要直接使用此类中的方法,应.
2021-04-30 11:43:37
974
4

原创 学习资料
JVM黑马 : https://www.bilibili.com/video/BV1b5411t7xp马士兵 : https://www.bilibili.com/video/BV16Z4y1s7u4深入理解java虚拟机 : https://www.bilibili.com/video/BV1BW411R7QK多线程与高并发https://www.bilibili.com/video/BV1wi4y147fV马士兵 : https://www.bilibili.com/video/BV1
2021-02-01 10:36:50
654

原创 jvm知识点汇总-持续更新
JVM内存模型1> 线程栈使用栈数据结构,FILO2> 线程栈、方法区(元空间 之前的永久代) 使用直接内存3> 新生代 : 老年代 : 默认 1:24> eden比from比to : 8:1:1 from和to又称为s0,s1或者s1,s25> 操a=1会先将1入操作入栈,然后a分配空间,操作数栈出栈6> 分代年龄,cms默认6、非cms默认15(且最大15,因分代年龄占4字节)7> TLAB的全称是Thread Local Allocation
2020-07-17 11:55:15
511
1

原创 idea配置spring源码
1. 安装gradle1.1 解压gradle解压gradle安装包 (gradle-6.5-bin.zip)1.2 配置环境变量GRADLE_HOME : D:\Program Files\gradle-6.5(gradle路径)Path : %GRADLE_HOME%\binGRADLE_USER_HOME : D:\apache-maven-3.2.3\repository(仓库路径)1.3 验证是否安装成功 (win10貌似需要重启,环境变量才生效)gradle -vers
2020-06-27 19:26:04
991
1
原创 ElasticSearch小计
Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。能够达到近实时搜索,稳定,可靠,快速,安装使用方便。客户端支持Java、.NET(C#)、PHP、Python、Ruby等多种语言。官方网站:下载地址:通过一个程序扫描文本中的每一个单词,针对单词建立索引,并保存该单词在文本中的位置、以及出现的次数用户查询时,通过之前建立好的索引来查询,将索引中单词对应的文本位置、出现的次数返回给用户,因为有了具体文本的位置,所以就可以将具体内容读取出来了。
2023-05-10 17:39:24
752
原创 ThreadLocal小记
}* }* . . .从Java官方文档中的描述:ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。
2023-04-19 15:15:56
542
原创 mybatis-plus使用IPage分页
1、pom文件<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.1</version></dependency>2、分页查询2.1、方式1 - 通过 BaseMapper 的 page 方法import com.
2023-04-12 18:52:25
1016
原创 springboot自定义parent
当项目为微服务架构时,每个微服务均需定义基本标准,如:SpringBoot、SpringCloud等版本、jdk版本、其它jar包版本等,标准及维护比较困难。自定义parent项目,规范标准、基本引用,自定义parent项目作为所有微服务的parent,统一标准、减少配置。
2023-04-11 18:51:53
742
原创 mybatis-plus使用IPage分页返回vo对象
代码如下:但是无法返回 IPage(AppBookTypeVo)解决方案:对查询到的page数据做一次convert()转换即可。
2023-04-04 14:32:42
2993
2
原创 消息队列RocketMQ、Kafka小计
Broker部署相对复杂,Broker分为Master与Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master,Master与Slave的对应关系通过指定相同的BrokerName,不同的BrokerId来定义,BrokerId为0表示Master,非0表示Slave。Master也可以部署多个。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕。
2023-03-31 12:21:11
1599
原创 java监听文件变化
WatchService接口是在java7的版本中引入的。主要是处理NIO的文件相关问题。但是WatchService其实是有很多缺点的。鉴于以上原因,在简单的实现时,可以使用。
2023-03-03 16:19:44
672
原创 MDC 实现全链路调用日志跟踪
*** 线程池配置/*** 默认情况下,在创建了线程池后,线程池中的线程数为0,当有任务来之后,就会创建一个线程去执行任务,* 当线程池中的线程数目达到corePoolSize后,就会把到达的任务放到缓存队列当中;* 当队列满了,就继续创建线程,当线程数量大于等于maxPoolSize后,开始使用拒绝策略拒绝*/ // 核心线程数(默认线程数) @Value("${thread.corePoolSize:0}") private int corePoolSize;
2023-01-03 17:10:56
608
原创 linux安装redis哨兵
服务器一台:2、解压redis3、编译、安装配置主从、哨兵在目录 /usr/loca/redis/conf 下创建以下文件redis2.confredis3.confsentinel1.confsentinel2.confsentinel3.conf启动服务start_all.sh查看服务
2022-12-05 16:20:56
1095
原创 SpringCloudAlibaba和SpringCloud的区别
SpringCloudAlibaba和SpringCloud的区别名称SpringCloudSpringCloudAlibaba注册中心Eureka、ConsulNacos分布式配置中心SpringCloud ConfigNacos服务总线BusNacos网 关Zuul、Zuul2Gateway负载均衡RibbonLoadbalancer熔断降级HystrixSentinel服务调用FeignOpenFeign分布
2022-05-07 17:56:35
345
原创 Jupyter Notebook 安装
相关软件下载(百度网盘)提取码:lq4i1、安装python双击 python-3.8.2.exe 安装即可ps:若提示错误,可以确认python环境变量是否配置,若已配置可重启电脑后验证2、安装Anaconda双击 Anaconda3-2021.11-Windows-x86_64.exe 安装即可开始 → Anaconda3(64-bit)→ 右键点击Anaconda Prompt → 以管理员身份运行”,在Anaconda Prompt中输入 conda list ,可以查看已经安
2022-04-21 16:33:44
1979
原创 spring-retry,实现重试
在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败。调用远程服务失败。争抢锁失败。这些错误可能是因为网络波动造成的,等待过后重处理就能成功。通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码。然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功能。pom<dependency> <groupId>org.springframe
2022-04-19 10:51:47
462
原创 spring-boot-starter-actuator
pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>ActuatorApplicationpackage com.example.actuator;import org.springframewo..
2021-06-04 10:59:16
3915
原创 springboot[1]-多模块共用配置文件
子模块1配置信息如下redis.propertiesmysql.propertieskafka.properties私有配置参数.properties子模块2配置信息如下redis.propertiesmysql.propertieskafka.properties私有配置参数.properties问题描述中间件配置信息大体一致,但子模块1、2均需配置,存在冗余配置可能存在子模块1、2配置信息不一致,导致错误,如 : 数据库连接信息、redis库信息实际业务也.
2021-05-25 14:39:08
4380
1
原创 springboot-rocketmq日志rocketmq_client.log问题
问题描述springboot配置rocketmq后,会写入日志到rocketmqlogs目录洗阿德rocketmq_client.log文件中,且日志过于庞大。解决1. 启动类增加代码System.setProperty(ClientLogger.CLIENT_LOG_USESLF4J,"true");2. LogBack.xml中增加配置<!-- ROCKETMQ START --><appender name="RocketmqClientAppender" c
2021-05-14 11:21:09
6110
1
原创 spring[6]-SmartInitializingSingleton, InitializingBean, DisposableBean, BeanNameAware
package com.service;import org.springframework.beans.factory.BeanNameAware;import org.springframework.beans.factory.DisposableBean;import org.springframework.beans.factory.InitializingBean;import org.springframework.beans.factory.SmartInitializingSing
2021-05-13 15:45:56
276
原创 spring[5]-FactoryBean
FactoryBeanLearn/** * FactoryBean接口的实现类 * 可以使用FactoryBean注册一个bean,并可实现自定义类的创建过程 */@Componentpublic class FactoryBeanLearn implements FactoryBean { /** * 返回的对象实例 */ @Override public Object getObject() throws Exception { //.
2021-05-13 15:44:09
125
原创 spring[4]-BeanPostProcessor
package com.BeanFactoryPostProcessor;import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;import org.springframework.stereotype.Component;/** * ===Spring IOC容器实例化Bean=== * ===调用BeanPostPr
2021-05-13 15:24:45
111
原创 spring[3]-BeanFactoryPostProcessor
import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanFactoryPostProcessor;import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;import org.springframework.beans.factory.support.Gen
2021-05-13 15:21:13
102
原创 spring[2]-ApplicationContextAware
通过ApplicationContextAware,Spring容器会自动把上下文环境对象调用ApplicationContextAware接口中setApplicationContext方法,可以通过这个上下文环境对象得到Spring容器中的Bean。静态方法使用springbean无法通过@Autowried注入线程内无法使用springbean此时,可以通过ApplicationContextAware来实现SpringContextHolder.javapackage com..
2021-05-13 15:17:46
246
使用ImportBeanDefinitionRegistrar、JDK代理、FactoryBean模拟mybatis原理.zip
2021-05-13
spring[1]-使用ImportBeanDefinitionRegistrar自定义注册bean(基于源码).zip
2021-05-13
springboot整合redis.zip
2020-07-16
gradle+springframework.zip
2020-06-27
easyui主题 themes
2019-03-04
nginx离线安装包
2018-12-29
RedHat 升级内核版本离线包
2018-11-26
linux环境docker rpm离线安装包
2018-11-26
Oracle笔记
2015-08-04
mongodb笔记
2015-08-04
ThinkPadE531鼠标驱动
2015-08-04
ThinkPad E550鼠标驱动
2015-08-04
ThinkPad鼠标驱动
2015-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人