自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

你看到的逆袭,只不过是一场预备很久,草蛇灰线,伏笔千里的反攻

你看到的逆袭,只不过是一场预备很久,草蛇灰线,伏笔千里的反攻

  • 博客(215)
  • 资源 (14)
  • 收藏
  • 关注

原创 Spring之CGLIB和JDK动态代理底层实现

Spring会自动在JDK动态代理和CGLIB之间转换:1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP3、如果目标对象没有实现了接口,必须采用CGLIB库本文主要讲解CGLIB和JDK动态代理的使用和底层原理。

2024-04-17 23:50:34 511 2

原创 Spring拓展点ConfigurationClassPostProcessor解析流程

ConfigurationClassPostProcessor是一个bean工厂的后置处理器,它重写了两个方法,最重要的方法是postProcessBeanDefinitionRegistry,主要是解析配置类,生成BeanDefinition注册到bean工厂中。

2024-04-08 23:31:15 22

原创 Spring拓展点之SmartLifecycle如何感知容器启动和关闭

Spring拓展点SmartLifecycle在容器启动阶段实例化所有单例对象后,获取所有实现SmartLifecycle的类,执行start方法;在容器关闭时,先获取所有实现SmartLifecycle的类,执行stop方法,最后清除所有单例对象。

2024-04-03 22:22:16 1169 4

原创 Spring之BeanFactoryPostProcessor详解

BeanFactoryProcessor是spring的一个拓展点,它的作用时机是在加载完所有的beanDefinition,还未实例化前。可以对beanDefinition进行加工,但是不可以加载beanDefinition。BeanDefinitionRegistryPostProcessor是BeanFactoryProcessor的子接口,增强了功能,既可以对beanDefinition加工,还可以加载自定义的beanDefinition。

2024-04-02 23:33:15 863

原创 Spring之ApplicationListener实现监听原理

ApplicationListener实现监听的原理就是使用了ApplicationListenerDetector类,这是一个bean后置处理器,在容器启动中,ApplicationListenerDetector先被实例化,然后实例化其他非懒加载的bean对象时,ApplicationListenerDetector会作用于这些非懒加载的bean对象,判断对象是否实现了ApplicationListener接口,若实现了则注册到容器的监听器列表中。

2024-04-02 13:41:04 994

原创 Spring注解@EventListener实现监听原理

@EventListener实现原理主要通过EventListenerMethodProcessor和DefaultEventListenerFactory这两个类实现。EventListenerMethodProcessor的作用是识别所有使用eventListener注解的方法DefaultEventListenerFactory将EventListenerMethodProcessor识别出的方法封装成为监听器类以代码new AnnotationConfigApplicationContext为入

2024-03-31 18:43:17 1049

原创 Spring依赖注入之@autowire注解详解

主要了解@autowire注解的底层逻辑,参与了bean生命周期的哪个阶段,如何实现注入

2023-11-21 23:20:41 322

原创 Spring依赖注入之循环依赖问题详解

对象A依赖对象B,对象B依赖对象A,这是一种常见的依赖关系。为什么spring会有循环依赖问题?spring是怎么解决循环依赖问题

2023-11-21 15:25:27 145

原创 Spring之Bean生命周期流程详解

BeanDefinition合并之后,就可以去创建Bean对象了,而创建Bean就必须实例化对象,而实例化就必须先加载当前BeanDefinition所对应的class,在AbstractAutowireCapableBeanFactory类的。如果beanClass属性的类型是Class,那么就直接返回,如果不是,则会根据类名进行加载(doResolveBeanClass方法所做的事情)会利用BeanFactory所设置的类加载器来加载类,如果没有设置,则默认使用。主要是推断构造函数去生成一个对象。

2023-11-07 23:55:09 184

原创 仿spring-framework源码实现手写一个IOC容器

第一步根据扫描路径获取类信息即bean定义,第二步实例化容器中单粒bean,实例化过程分为5步1.根据构造函数new对象 2.依赖注入 3.初始化前【介绍了postcontruct和后置处理器两种方式】4.初始化-主要是实现了InitializingBean方法 5.初始化后-主要是进行AOP过程,实例化后加到单例对象集合singletonObjects。

2023-11-06 00:00:36 61

原创 Java中BitSet和Set统计不重复字符数量时间复杂度和空间复杂度分析

看来每个问题都不只有一种解法,每一种解法优缺点分析需要理解底层的逻辑,并借助工具去呈现最终的结果,只要我们想到并且动手实践,也许也没有那么难。

2023-05-30 02:14:19 643

原创 两种工具查询Java嵌套对象引用内存大小

【代码】两种工具查询Java嵌套对象引用内存大小。

2023-05-30 01:56:46 168

原创 Java利用JOL工具分析对象分布

基于上面描述数组和普通对象的对象头有不同的内存大小,主要区别在于数组长度。

2023-05-30 01:11:50 665

原创 一文了解Hotspot虚拟机下JAVA对象从创建到回收的生命周期

Java虚拟机是Java的核心和基础,他是Java编译器和操作系统平台之间处理器,能实现跨平台运行Java程序。本文主要讲解的是Java对象在JVM虚拟机中被创建到回收的流程

2023-02-18 22:05:30 574

原创 【智能合约】——智能合约安全指南

如何保证智能合约安全?如何审计

2022-08-31 21:58:30 396 1

原创 【智能合约实战】——入门级DAPP,没有想象中那么难

Dapp就是去中心化应用程序的简称,是以某种方式连接到区块链的在线应用程序。从理论上讲,dapp是运行在节点服务器上面的,而dapp的整个后端存储是在区块链而不是服务器上完成的,重点是dapp的数据是存储在区块链上的,不是中心数据库;DApp的使用方式与其他任何app都相同。......

2022-07-29 10:57:45 3503 1

原创 【JVM加载】---类加载机制

为什么要设计双亲委派模型

2021-05-12 13:04:15 139

原创 【工具类】——jdk自带类分析工具HSDB

工具类分享

2021-02-02 23:35:04 579 3

原创 【Elastic-Job源码分析】——作业监听器

参考文档:[芋道源码-Elastic Job Lite](http://www.iocoder.cn/categories/Elastic-Job-Lite/) 下载源码地址:[Elastic-Job源码地址](https://github.com/apache/shardingsphere-elasticjob) Elastic-Job官网地址:【[Elastic-Job官网文档地址](https://shardingsphere.apache.org/elasticjob/)】 Ela

2020-11-29 23:03:07 431

原创 【Elastic-Job】分布式调度任务概览篇

前言  本司主要现在业务使用的技术就是当当网的Elastic-Job,刚刚使用的时候只是为了快速满足业务需求而引入的一项技术,符合主要的功能特征就是支持分布式的分片处理机制,非常适用于我司大数量的处理内容 在开始之前先了解一些基础概念什么是调度任务   任务调度是系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任务调度即可解放更多的人力由系统自动去执行任务 什么是分布式调度任务  将一个任务拆分成多个独立的任务项,由分布式的服务器分别执行某一个或几个分片项分布式任务调度需求

2020-11-23 00:07:22 290 2

原创 linux环境下kafka的搭建

一.kafka基本实现配置准备环境:zookeeper的单机环境和kafka的单机环境1.启动zookeeperbin/zookeeper-server-start.sh config/zookeeper.properties2.启动Kafkabin/kafka-server-start.sh config/server.properties3.创建topicbin/kafka-t...

2019-08-11 20:41:30 194 2

原创 Java并发编程——线程通信

1.wait和notify方法(配合synchronize使用,属于Object方法)2.CyclicBarrier使用场景每一个线程代表一个跑步运动员,当运动员都准备好后才一起出发,只要有一个没有准备好,就大家都等待。3.CountDownLatch使用场景经常用于监听某一些舒适化的操作。等初始化执行完毕之后,通知主线程继续工作。

2019-03-03 19:54:45 378

原创 【小白学python】——python内功心法

每学习一门语言之前,掌握其基本的语法,数据类型,数据结构都是及其重要的,这是重要的基石,所以本篇主要是从这三部分了解python

2019-02-23 18:44:49 320 1

原创 年终总结——岁月静好~

在2零18年我的博客的访问量终破30万,你留下的痕迹,都是对我莫大的支持和信任,我会继续加油!

2019-02-12 11:50:00 436 3

原创 使用git命名将项目代码上传到gitlab

1.在gitlab上面创建一个新的项目2.在本地项目的文件目录下创建一个.gitignore文件,将一些本地的配置忽略/target/!.mvn/wrapper/maven-wrapper.jar### STS ###.apt_generated.classpath.factorypath.project.settings.springBeans.sts4-cache#...

2018-12-07 16:38:17 450 1

原创 验证zookeeper安装成功四字命令

telnet localhost 2181输出结果:Trying ::1...Connected to localhost.Escape character is '^]'.直接向下输入srvr然后会显示zookeeper的信息:Zookeeper version: 3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built o...

2018-12-06 20:36:57 4561 1

原创 Kafka命令行详细介绍

小编的kafka的主要命令路径是:cd /usr/local/Cellar/kafka/2.0.0/bin主题的命令1.创建分区kafka-topics --alter --zookeeper localhost:2181 --topic test --partitions 32.创建主题kafka-topics --create --zookeeper localhost:218...

2018-12-06 17:03:20 853 1

原创 mac10.14中安装mysqldb

内容在python2.7中安装mysqldb,随着mysql版本的升高,libmysqlclient.dylib版本也会升高,如果是5.7版本的mysql,对应应该是libmysqlclient.18.dylib 版本,所以大家一定要看清楚!我的mysql版本是8.0.12 ,所以对应的libmysqlclient的版本是21,当我下载了使用命令下载mysqldb,如下:1.安装mysql版本...

2018-10-20 15:04:21 772 1

原创 小白学爬虫——爬虫入门

前言之前对爬虫也只是知道大概是干什么,但是真正如何去做,却真的没有接触过。学习爬虫技术,我面临两大难题,一个就是python语言,一个就是爬虫框架。这些知识将再以后的博文中涉猎,此篇主要是介绍一个网络爬虫的知识。内容1.学习爬虫有哪些意义?学习爬虫,私人定制一个搜索引擎,并且可以根据搜索引擎的数据采集工作原理有更深层次的理解。大数据时代,要进行数据分析,就需要有数据源,学习爬虫,可以获...

2018-10-20 12:39:31 722 2

原创 【SpringCloud】——之注册中心Eureka详解

前言了解Dubbo注册中心的小伙伴们肯定对于SpringCloud的注册中心Eureka充满了好奇,Eureka为什么能够成为内容Eureka是什么? Eureka是Netfilx的一个子模块,也会核心模块之一,基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移,服务注册于发现对于微服务架构师非常重要的,有了服务发现,主要使用服务的标识符,就可以访问到服务,而不...

2018-09-02 15:25:16 786

原创 为什么redis是单线程还那么快?

背景介绍: 学习redis的童鞋都知道,reids

2018-08-31 21:43:19 884 4

原创 Java并发编程——Executor框架

在公司中处理kafka任务时,我运用了线程池来创建多个线程处理来处理kafka命令。当然创建的线程是固定线程池,当时的考虑是因为资源的有限性,并且当时是对kafka中传过来的视频和图片多编解码,所以占用时间又点长。为了合理利用线程池,专门去学习关于这方面的知识,分享给大家!

2018-08-19 21:46:34 446 2

原创 多线程的三种设计模式的介绍

前言 并发设计模型属于设计优化的一部分,它是对一些常用的多线程结构的总结和抽象。与串行程序相比,并行程序通常更为复杂。因此合理的使用并行模式在多线程开发中具有意义,本篇主要讲解一下Future,Master-Worker和生产者-消费者模型 内容Future模式Master-Worker模式生产者-消费者模式一:Future模式主要的适用场景是异步请求数据。比如我们发送aj...

2018-08-12 21:39:06 3769 2

原创 SpringBoot基于@ControllerAdvice配置全局异常处理

异常处理类:public class GlobalException extends RuntimeException{ private static final long serialVersionUID = 1L; private CodeMessage cm; public GlobalException(CodeMessage cm){ s...

2018-08-05 16:03:03 5716 2

原创 SpringCloud-微服务架构

在讲springCloud之前讲讲为什么要有springCloud,从学习中知道springCloud的兴起是因为Dubbo社区五年没有更新,在计算机这个行业里面五年没有进步真的太恐怖了,所以springCloud火热起来,以绝对的优势横扫分布式领域。虽然现在Dubbo已经开始活跃,但是springCloud绝不会被取代,而是蒸蒸日上,这时候我相信你和一样,肯定想知道原因。springClou...

2018-07-29 21:41:53 562 32

原创 es6高级新特性

1.函数的rest参数和扩展:动态参数es5之前写多个参数函数的方式functionsum(x,y,z){lettotal=0;if(x)total+=x;if(y)total+=y;if(z)total+=z;console.log(`total:${total}`);}sum(5,"",9);es6添加rest参数之后可以写成如下方式,动态添加参数:functi...

2018-07-22 21:54:26 577 7

原创 【mysql优化五】——sql语句优化查询

order by 优化 orderby最好不要使用select *; 尝试提高sort_buffer_size 尝试提高max_length_for_sort_data 【解答】:创建复合索引:create index idx_three on tblA(age,birth,addr);1.索引最左前缀,orderby 使用索引有效 s...

2018-07-13 15:52:46 981 8

原创 【mysql学习三】——索引搜索优化

1.查询表中所含有的索引:show index from tb_item;| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Vi...

2018-07-13 15:38:33 289 7

原创 【mysql学习四】——批量导入sql语句脚本模板

前言工作中总有需要创建一系列的假数据进行系统的功能或者是性能的测试,作为一名专业的开发者,学会批量导入数据脚本是基本功!内容前提: 在创建函数之前需要开启log_bin_trust_function_creators,否则出现如下的错误: 查看log_bin_trust_function_creatorsshow variables like 'log_bin_trus...

2018-07-12 18:04:48 711 4

原创 【mysql学习二】——从架构到基本配置讲解

前言虽然不是DBA,但是了解mysql的一些基本知识对于我们提高自身水平和提高书写sql语句性能有帮助!内容1.配置文件: 文件名称 作用 二进制日志log-bin 用于主从复制 错误日志log-error 默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等 查询日志log 默认是关闭的,记录查询的sql语句,如...

2018-07-10 17:24:46 211 4

Rocketmq-Console源码下载

1.用于rocketmq展示 2.解决基于github下载源码比较慢的用户

2022-01-19

duubo简单架构

dubbo+zookeeper分布式项目面向soa编程,本项目是用idea工具搭建的简单的dubbo项目!

2018-07-10

ssm架构项目

该项目使用idea功能搭建,使用maven,spring,springmvc,mybatis搭建成的简单的一个ssm架构!

2018-07-10

贪吃蛇js代码

简单的贪吃蛇游戏,纯JavaScript的开发,可以当做新手试用项目!

2018-03-25

echart实现3D柱状图效果

echart.js实现动态3D效果,酷炫的效果,值得研究看看哈

2018-01-31

dubbo-admin-2.5.3.war

用于dubbo管理平台

2017-08-14

com.cb.eclipse.folding_1.0.6

用于Java实现自定义代码折叠的功能,和c#的#region的功能类似的功能

2017-05-04

jquery-form.js

支持jquery表单异步提交

2017-04-16

dom4j-1.6.1.jar

java的xml的API,读取xml标签

2017-03-14

jaxen1.1-beta-6.jar

java 的xpath

2017-03-14

ojbdc14.jar

ojdbc是oracle的驱动jar包

2017-03-14

dom4j-1.6.1.jar和jaxen-1.1.beta.jar

dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,Jaxen是一个开源的XPath库。两者通常一起使用,jaxen辅助dom4j找到xml的标签内容!

2017-03-14

PowerDesigner16.5破解版文件

安装好powerdesigner16.5安装完成之后,将破解文件中的dll覆盖安装目录中的存在的dll即可破解!

2017-03-13

plsqldeveloper64位安装包下载

主要是64位的plsqldeveloper的安装包,内部附有:安装包以及注册吗,还有汉化包,主要是为了操作orcale数据库而创建的!

2017-03-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除