- 博客(209)
- 资源 (14)
- 收藏
- 关注
原创 Spring依赖注入之循环依赖问题详解
对象A依赖对象B,对象B依赖对象A,这是一种常见的依赖关系。为什么spring会有循环依赖问题?spring是怎么解决循环依赖问题
2023-11-21 15:25:27 129
原创 SpringIoC之Bean生命周期源码主要流程解析
BeanDefinition合并之后,就可以去创建Bean对象了,而创建Bean就必须实例化对象,而实例化就必须先加载当前BeanDefinition所对应的class,在AbstractAutowireCapableBeanFactory类的。如果beanClass属性的类型是Class,那么就直接返回,如果不是,则会根据类名进行加载(doResolveBeanClass方法所做的事情)会利用BeanFactory所设置的类加载器来加载类,如果没有设置,则默认使用。主要是推断构造函数去生成一个对象。
2023-11-07 23:55:09 165
原创 仿spring-framework源码实现手写一个IOC容器
第一步根据扫描路径获取类信息即bean定义,第二步实例化容器中单粒bean,实例化过程分为5步1.根据构造函数new对象 2.依赖注入 3.初始化前【介绍了postcontruct和后置处理器两种方式】4.初始化-主要是实现了InitializingBean方法 5.初始化后-主要是进行AOP过程,实例化后加到单例对象集合singletonObjects。
2023-11-06 00:00:36 53
原创 Java中BitSet和Set统计不重复字符数量时间复杂度和空间复杂度分析
看来每个问题都不只有一种解法,每一种解法优缺点分析需要理解底层的逻辑,并借助工具去呈现最终的结果,只要我们想到并且动手实践,也许也没有那么难。
2023-05-30 02:14:19 604
原创 一文了解Hotspot虚拟机下JAVA对象从创建到回收的生命周期
Java虚拟机是Java的核心和基础,他是Java编译器和操作系统平台之间处理器,能实现跨平台运行Java程序。本文主要讲解的是Java对象在JVM虚拟机中被创建到回收的流程
2023-02-18 22:05:30 559
原创 【智能合约实战】——入门级DAPP,没有想象中那么难
Dapp就是去中心化应用程序的简称,是以某种方式连接到区块链的在线应用程序。从理论上讲,dapp是运行在节点服务器上面的,而dapp的整个后端存储是在区块链而不是服务器上完成的,重点是dapp的数据是存储在区块链上的,不是中心数据库;DApp的使用方式与其他任何app都相同。......
2022-07-29 10:57:45 3436 1
原创 【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 422
原创 【Elastic-Job】分布式调度任务概览篇
前言 本司主要现在业务使用的技术就是当当网的Elastic-Job,刚刚使用的时候只是为了快速满足业务需求而引入的一项技术,符合主要的功能特征就是支持分布式的分片处理机制,非常适用于我司大数量的处理内容 在开始之前先了解一些基础概念什么是调度任务 任务调度是系统为了自动完成特定任务,在约定的特定时刻去执行任务的过程。有了任务调度即可解放更多的人力由系统自动去执行任务 什么是分布式调度任务 将一个任务拆分成多个独立的任务项,由分布式的服务器分别执行某一个或几个分片项分布式任务调度需求
2020-11-23 00:07:22 283 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 193 2
原创 Java并发编程——线程通信
1.wait和notify方法(配合synchronize使用,属于Object方法)2.CyclicBarrier使用场景每一个线程代表一个跑步运动员,当运动员都准备好后才一起出发,只要有一个没有准备好,就大家都等待。3.CountDownLatch使用场景经常用于监听某一些舒适化的操作。等初始化执行完毕之后,通知主线程继续工作。
2019-03-03 19:54:45 374
原创 【小白学python】——python内功心法
每学习一门语言之前,掌握其基本的语法,数据类型,数据结构都是及其重要的,这是重要的基石,所以本篇主要是从这三部分了解python
2019-02-23 18:44:49 319 1
原创 使用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 448 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 4554 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 852 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 768 1
原创 小白学爬虫——爬虫入门
前言之前对爬虫也只是知道大概是干什么,但是真正如何去做,却真的没有接触过。学习爬虫技术,我面临两大难题,一个就是python语言,一个就是爬虫框架。这些知识将再以后的博文中涉猎,此篇主要是介绍一个网络爬虫的知识。内容1.学习爬虫有哪些意义?学习爬虫,私人定制一个搜索引擎,并且可以根据搜索引擎的数据采集工作原理有更深层次的理解。大数据时代,要进行数据分析,就需要有数据源,学习爬虫,可以获...
2018-10-20 12:39:31 719 2
原创 【SpringCloud】——之注册中心Eureka详解
前言了解Dubbo注册中心的小伙伴们肯定对于SpringCloud的注册中心Eureka充满了好奇,Eureka为什么能够成为内容Eureka是什么? Eureka是Netfilx的一个子模块,也会核心模块之一,基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移,服务注册于发现对于微服务架构师非常重要的,有了服务发现,主要使用服务的标识符,就可以访问到服务,而不...
2018-09-02 15:25:16 783
原创 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 3752 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 5705 2
原创 SpringCloud-微服务架构
在讲springCloud之前讲讲为什么要有springCloud,从学习中知道springCloud的兴起是因为Dubbo社区五年没有更新,在计算机这个行业里面五年没有进步真的太恐怖了,所以springCloud火热起来,以绝对的优势横扫分布式领域。虽然现在Dubbo已经开始活跃,但是springCloud绝不会被取代,而是蒸蒸日上,这时候我相信你和一样,肯定想知道原因。springClou...
2018-07-29 21:41:53 561 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 574 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 979 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 286 7
原创 【mysql学习四】——批量导入sql语句脚本模板
前言工作中总有需要创建一系列的假数据进行系统的功能或者是性能的测试,作为一名专业的开发者,学会批量导入数据脚本是基本功!内容前提: 在创建函数之前需要开启log_bin_trust_function_creators,否则出现如下的错误: 查看log_bin_trust_function_creatorsshow variables like 'log_bin_trus...
2018-07-12 18:04:48 707 4
原创 【mysql学习二】——从架构到基本配置讲解
前言虽然不是DBA,但是了解mysql的一些基本知识对于我们提高自身水平和提高书写sql语句性能有帮助!内容1.配置文件: 文件名称 作用 二进制日志log-bin 用于主从复制 错误日志log-error 默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等 查询日志log 默认是关闭的,记录查询的sql语句,如...
2018-07-10 17:24:46 210 4
原创 【Zookeeper学习八】——dubbo+zookeeper结合maven搭建分布式系统架构
前言内容项目的目录结构: 目录介绍:代码示例:总结
2018-07-10 16:33:56 390 4
原创 【Zookeeper学习七】——zookeeper原生客户端操作
前言内容zookeeper的常用命令行1.打开zookeeper的客户端 zkCli.sh 2.ls:在路径下有哪些目录 和 ls2:路径下的目录以及相关信息get:把当前目录中节点的信息取出来; 和stat• czxid. 节点创建时的zxid. • mzxid. 节点最新一次更新发生时的zxid. • ctime. 节点创建时的时间戳. • mtime...
2018-07-10 16:29:15 213 2
原创 【Zookeeper学习六】——开源客户端ZKClient和Curator介绍与应用
前言内容客户端介绍:1.1zk原生api不足之处:超时重连,不支持自动,需要手动操作Watch注册一次后失效不支持递归创建节点1.2zkclientZkClient是一个开源客户端,在Zookeeper原生API接口的基础上进行了包装,更便于开发人员使用。内部实现了Session超时重连,Watcher反复注册等功能。像dubbo等框架对其也进行了集成使用。...
2018-07-09 20:42:59 1980 4
原创 【Zookeeper学习四】——伪集群搭建和集群搭建教程
前言单机版教程在之前的博客中已经介绍过了,相关博客:内容一:伪集群搭建: 二:集群搭建: 三 :服务器和客户端之间的关系如下图:(参考网图) 总结集群搭建是学习zookeeper必须应该会的,在zookeeper的集群搭建成功之后会进行master选举,本篇主要是介绍搭建的教程,下一篇将介绍集群选举的原理!...
2018-07-09 17:33:49 229 3
原创 【Zookeeper学习二】——zookeeper简单介绍
前言学习zookeeper的目的是为了了解zookeeper作为dubbo的注册中心,是如何做到协调各个服务,注册服务,以及订阅服务,深入地理解分布式架构。内容zookeeper定义ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。...
2018-07-09 16:18:41 223 4
dom4j-1.6.1.jar和jaxen-1.1.beta.jar
2017-03-14
plsqldeveloper64位安装包下载
2017-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人