- 博客(146)
- 收藏
- 关注
原创 Eureka Client启动源码分析(2)
Eureka Client启动源码分析(2) 上篇文章主要分析了Eureka Client启动的启动流程 最终都是调用EurekaHttpClient接口的方法。 可以理解为Eureka Client为Server层,调用EurekaHttpClient(dao层的方法),进行发送HTTP请求。 下面来分析EurekaHttpClient的实现细节 EurekaHttpClient public ...
2019-07-06 15:39:01
495
原创 Eureka Client启动源码分析(1)
Eureka Client启动源码 1.我们从@EnableDiscoveryClient出发, 找到注释 Annotation to enable a DiscoveryClient implementation 2.找到DiscoveryClient接口及其实现类,发现有三个方法 public interface DiscoveryClient { //获取描述 String desc...
2019-07-06 14:55:23
727
原创 Eureka Server源码分析(1)从@EnableEurekaServer注解开始分析
Eureka启动源码分析 我们从@EnableEurekaServer注解开始分析 1.Eureka Server启动分析 1.1找到@EnableEurekaServer的实现类 EurekaServerAutoConfiguration 1.2分析EurekaServerInitializerConfiguration(eureka配置的加载类) //标识为配置文件 @Configuratio...
2019-06-29 15:49:45
1141
原创 springboot源码解析详细版
springboot源码解析(转) Spring Boot 的入口类 @SpringBootApplication public class StartupApplication { public static void main(String[] args) { SpringApplication.run(StartupApplication.class, args)...
2019-05-30 20:58:59
8552
4
原创 Eureka Server启动源码分析(2)
Eureka启动源码分析 我们从@EnableEurekaServer注解开始分析 1.Eureka Server启动分析 1.1找到@EnableEurekaServer的实现类 EurekaServerAutoConfiguration 1.2分析EurekaServerInitializerConfiguration(eureka配置的加载类) //标识为配置文件 @Configuratio...
2019-03-21 11:52:44
927
原创 java将多个文件(Excel)压缩成zip,并发送给页面
java将多个文件(Excel)压缩成zip,并发送给页面 方案 将多个文件夹中的文件,放入一个临时文件夹,并将临时文件夹进行压缩打包,发回给页面。 转移文件类 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /** ...
2019-03-04 18:52:04
6403
原创 mapper.xml报错导致控制台不断刷日志
mapper.xml报错导致控制台不断刷日志 用户mybatis的xml文件错误,在spring配置文件中将SqlSessionFactoryBean类改成该类的路径 import java.io.IOException; import org.apache.ibatis.executor.ErrorContext; import org.apache.ibatis.session.SqlSes...
2019-02-26 19:30:14
437
原创 quartz的job实现类无法注入Service类
quartz的job实现类无法注入Service类 原因 Job是在quartz的框架中实例化的,service是在spring容器中创建出来的。 所以Job实现类不受spring管理,即导致注入失败。 解决方案 使用Quartz提供了JobFactory接口,就可以自定义实现创建Job的逻辑,并将jobFactory交给spring容器管理 代码 MyJobFactory类 public cla...
2019-02-25 16:31:49
2149
4
转载 innodb存储引擎 索引的类型和使用
索引的类型和使用 1.索引的类型及其特点 1.1类型 普通索引 唯一索引 全文索引(FULLTEXT)
2019-02-19 08:50:32
3489
1
原创 CountDownLatch和CyclicBarrier的区别
CountDownLatch和CyclicBarrier的区别 从字面上理解,CountDown表示减法计数,Latch表示门闩的意思,计数为0的时候就可以打开门闩了。Cyclic Barrier表示循环的障碍物。两个类都含有这一个意思:对应的线程都完成工作之后再进行下一步动作,也就是大家都准备好之后再进行下一步。然而两者最大的区别是,进行下一步动作的动作实施者是不一样的。这里的“动作实施者”...
2019-02-14 14:33:59
403
原创 3.2kafka基础配置,整合springboot
kafka基础配置 github网址:https://github.com/Plumblumpb/messageQueue-.git kafka基础(可以先看):https://blog.csdn.net/c_royi/article/details/86648910 项目 maven文件 <dependency> <groupId>org.apache.kafka...
2019-01-29 15:41:30
701
原创 2.3rabbitMq整合springboot
rabbitMq整合springboot github地址:https://github.com/Plumblumpb/messageQueue-.git rabbitmq(可以先看这两篇文章): https://blog.csdn.net/c_royi/article/details/86630777 https://blog.csdn.net/c_royi/article/details/86...
2019-01-29 15:24:02
522
原创 2.2rabbitMq基础操作
rabbitMq基础操作 并整合 springboot github:https://github.com/Plumblumpb/messageQueue-.git rabbitMq文章(可以先观看):https://blog.csdn.net/c_royi/article/details/86630777 rabbitMq基础操作 pom.xml文件 <dependency> ...
2019-01-29 15:02:18
304
转载 3.1kafka基础解析,运行原理.
1.基础概念 Broker:消息中间件处理结点,一个Kafka节点就是一个broker。 Topic:主题,一个主题一般会有多个消息的订阅者 Partition:topic物理上的分组,一个topic可以分为多个partition,每个partition是一个有序的队列,用于记录每个消费者消费的消息队列。 Segment:partition物理上由多个segment组成,存储消息,每个segm...
2019-01-25 16:58:11
328
原创 java 通过服务器ip以及snmp协议读取cpu使用率,和内存使用率
java 通过服务器ip以及snmp协议读取cpu使用率,和内存使用率 **github地址:**https://github.com/Plumblumpb/snmp-demo.git 环境配置 window环境配置:https://jingyan.baidu.com/article/7f766dafe17d394101e1d0f9.html linux环境配置:https://blog.csdn...
2019-01-25 11:40:42
17653
9
原创 linux系统配置snmp
linux系统配置snmp 最近公司需要在监控一下各项目地的服务器运行状况,查找资料发现可以直接通过SNMP服务实现,于是打算测试一下在RedHat Linux系统中安装和配置snmp服务 检查系统是否安装snmp服务 # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl-5.3.2.2-17.el5 net-snmp-devel-...
2019-01-25 11:20:25
2684
原创 2.1rabbitMq基础概念,解决消息丢失问题
rabbitMq基础概念 为啥使用rabbitmq 如果使用Socket,那么不同的模块的确可以部署到不同的机器上,但是还是有很多问题需要解决。比如: 信息的发送者和接收者如何维持这个连接,如果一方的连接中断,这期间的数据是以什么方式丢失? 如何降低发送者和接收者的耦合度? 如何让Priority高的接收者先接到数据? 如何做到Load Balance?有效均衡接收者的负载? 如何有效的将...
2019-01-24 17:41:28
1577
原创 1.1activemq基础操作 并整合 springboot
activemq基础操作 pom.xml文件 &amp;lt;dependencies&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apache.activemq&amp;lt;/groupId&amp;gt; &amp;lt;artifactId
2019-01-24 15:43:04
199
原创 zookeeper Curator基础使用
zookeeper Curator基础使用 为啥使用Curator包 zookeeper原生API有以下几个不足之处: 超时重连,不支持自动,必须要手动实现; Watcher注册一次后只能使用一次; 不支持递归创建节点; 基础介绍 1.1 watcher :只能监听绑定事件操作:getData、exists、getChildren。 usingWatcher方法只调用一次,监听完毕后就会销...
2019-01-23 17:20:39
198
转载 zookeeper基础操作及其常用api
zookeeper基础操作及其常用api zookeeper zookeeper构造函数参数名称 ProcessResult参数说明 create参数说明 delete参数说明 getChild参数说明 getdata参数说明 setdata参数说明 exist参数说明 1.1zookeeper构造函数参数 1.2 Process参数 1.3create参数 1.4Delete参数说明 ...
2019-01-23 14:31:13
346
转载 redis分布式锁机制,及其原理,及其实现
redis分布式锁机制,及其原理 分布式系统加锁时的问题 由于网络延迟,对锁的获取造成幂等性问题。 当获得锁的服务崩溃,导致锁无法正常释放。 加锁后,如何有效的防止锁被篡改 解决方法 使用setx幂等性操作,解决由于网络延时,造成value值的覆盖 使用setx命令设置超时时间,如果服务崩溃,锁也能正常释放(如何控制过期时间的长短) ...
2019-01-22 11:12:22
753
1
转载 java jdk动态代理和cglib动态代理对比,实现,区别
java jdk动态代理和cglib动态代理对比,实现,区别 jdk动态代理和cglib动态代理对比 jdk动态代理 特点 Interface:对于JDK Proxy,业务类是需要一个Interface的,这是一个缺陷; Proxy:Proxy类是动态产生的,这个类在调用Proxy.newProxyInstance()方法之后,产生一个Proxy类的实力。实际上,这个Proxy类也是存在的,不仅...
2019-01-18 14:49:42
15814
2
原创 java静态代理和动态代理实现代码
java静态代理和动态代理 java设计模式中,常说的代理模式使用的是静态代理模式。 代理模式:为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。 静态代理:由创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的.class文件就已经存在了。 动态代理:在程序运行时运用反射机制动态创建而成。 ...
2019-01-18 10:24:29
839
原创 java反射机制
java反射机制 反射机制:在Java环境中,反射机制允许程序在执行时获取某个类自身的定义信息,例如熟悉和方法等也可以实现动态创建;类的对象、变更属性的内容或执行特定的方法的功能。从而使Java具有动态语言的特性,增强了程序的灵活性和可移植性。 作用 在运行时判断任意一个对象所属的类型。 在运行时构造任意一个类的对象。 在运行时判断任意一个类所具有的成员变量和方法。 在运行时调用任意一个对象...
2019-01-17 20:47:51
130
原创 java 回调函数例子,其原理,与代理模式的区别
java 回调函数例子,及其原理 回调函数 应用程序(application program)会时常通过API调用库里所预先备好的函数。但是有些库函数(library function)却要求应用先传给它一个函数,好在合适的时候调用,以完成目标任务。这个被传入的、后又被调用的函数就称为回调函数(callback function)。 作用: 可以把调用者与被调用者分开。调用者不关心谁是被调用者...
2019-01-17 17:21:41
17184
5
原创 BeanDefinition基础信息
public class BeanDefinitionHolder implements BeanMetadataElement { private final BeanDefinition beanDefinition; private final String beanName;//beanID @Nullable private final String[] ...
2019-01-17 16:08:11
487
原创 1.1springioc启动源码分析(ClassPathXmlApplicationContext)
spring启动源码分析(ClassPathXmlApplicationContext) Applicantioncontext uml图 ClassPathXmlApplicationContext xml 配置文件项目中的路径 FileSystemXmlApplicationContext xml 配置文件在系统中的路径 AnnotationConfigApplicationConte...
2019-01-17 16:06:09
313
原创 oracle start with connect by prior用法
oracle start with connect by prior用法 作用:显示树形表结构的信息 测试脚本: create table a_test ( parentid varchar2(10), subid varchar2(10) ); insert into a_test values ( '1', '2' ); insert into a_test values ...
2019-01-15 14:27:33
916
原创 OAuth基础知识
Third-party application:第三方应用程序,既需要认证的客户端 HTTP service:HTTP服务提供商,既用户信息源 Resource Owner:资源所有者 User Agent:用户代理 Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。 Resource server:资源服务器,即服务提供商存放用户生成的资源的服务器。 ...
2019-01-14 15:10:25
332
转载 Session和cookie 机制详解
Session机制详解 一、术语session session:“一个浏览器会话期间,用户的一系列操作”,是指从一个浏览器窗口打开到关闭这个期间,用户的一系列动作(一般情况下是同某个具体目的相关的一系列动作) 当session与网络协议相关联时,往往隐含了“面向连接”和/或“保持状态”这样两个含义, “面向连接”指的是在通信双方在通信之前要先建立一个通信的渠道,比如打电话,直到对方接了电话通信才...
2018-12-29 14:33:35
305
原创 oracle筛选出为数字的行
where length(translate(a,'.0123456789'||a,'.0123456789'))=length(groupNum) a为列名。
2018-12-20 20:27:19
1611
原创 voliate原理
volatile原理 volatile 当使用volatile关键字修饰共享变量(实例变量、静态变量)时,它将具备两个特性:可见性和禁止指令重排序优化 1.可见性 变量被修改后,会立即保存在主存中,并清除工作内存中的值。 新值对于线程来说都是可见的。 2.禁止指令重排序优化 指令重排序是指CPU在正确处理指令依赖(数据依赖)并且保障程序执行得到正确结果的情况下,调整代码的执行顺序,允许将多...
2018-12-18 23:20:23
7077
原创 synchronized原理分析
synchronized synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性 synchronized同步的基础 普通同步方法,锁是当前实例对象 静态同步方法,锁是当前类的class对象 同步方法块,锁是括号里面的对象 public class SynchronizedTest { // 普通同步方法 ...
2018-12-17 16:52:50
197
原创 AbstractQueuedSynchronizer(1)源码解析(jdk1.8)
AbstractQueuedSynchronizer源码解析(简称AQS) # AQS的属性 //Node类可以看成是线程 static final class Node // 头结点,你直接把它当做 当前持有锁的线程 可能是最好理解的 private transient volatile Node head; // 阻塞的尾节点,每个新的节点进来,都插入到最后,也就形成了一个隐视的链表 p...
2018-12-11 13:41:43
259
原创 2.2jvm类加载
1.jvm类加载时机 1.遇到new,getstatic,putstatic或者invokestatic这字节码指令时,会先触发初始化 new new实例化对象 getstatic 读取一个类的静态字段(使用static final修饰的除外) setstatic 设置一个类的静态字段(使用static final修饰的除外) invokestatic 调用一个类的静态方法 2.当初始化...
2018-12-02 21:47:29
186
原创 forearch循环时,不能使用add和remove不然会报错
forearch循环注意事项 不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。
2018-11-29 10:52:30
644
原创 1.zookeeper基础知识,结构和运行流程,基础使用
zookeeper基础知识 1.单个zookeeper结构 zookeeper结构图 每个节点都为znode znode分为持久节点(客户端断开连接后,仍然存在),临时节点(断开连接,节点消失,不允许有子节点),顺序节点(持久或临时,编号用于锁定和同步中) 每个znode维护一个stat(由版本号,操作控制列表,时间戳,数据长度组成) znode详解 2.zookeeper集群结构 zoo...
2018-11-14 11:30:05
479
原创 2.3四种线程连接池的配置和使用(和自定义线程池)
四种线程连接池的配置和使用 最终调用类和方法 {参数有 核心线程数目,最大线程数目,存活时间(当前线程执行完这个任务之后,等待下一个任务到来的最长等待时间。如果在这个时间内没有新的任务来到,那当前线程就会退出),时间单位,等待队列(用于存放待执行的任务)} public ThreadPoolExecutor( // 核心线程数目 int corePoolSize, //最大线程数目 int max...
2018-11-12 17:32:53
760
原创 2.2四种线程连接池的作用
四种线程连接池的作用及其使用 线程池的作用: 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果;少了浪费了系统资源,多了造成系统拥挤效率不高。用线程池控制线程数量,其他线程排 队等候。一个任务执行完毕,再从队列的中取最前面的任务开始执行。若队列中没有等待进程,线程池的这一资源处于等待。当一个新任务需要运行时,如果线程池 中有等待...
2018-11-12 15:35:13
353
原创 配置ehCache缓存策略@Cacheable,@CacheEvict,@CachePut
ehCache 1.@Cacheable 1.@CacheEvict 1.@CachePut
2018-11-12 15:30:43
3012
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人