自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 收藏
  • 关注

原创 Sentinel学习比较(一)SpringBoot集成alibaba-sentinel实现接口限流入门

Sentinel 介绍 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel具有以下特征:丰富的应用场景: Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、实时熔断下游...

2019-05-08 11:51:00 6676 2

原创 SpringBoot 集成阿里云 RocketMQ 实战之快速入门

RocketMQ 是什么Github 上关于 RocketMQ 的介绍:RcoketMQ 是一款低延迟、高可靠、可伸缩、易于使用的消息中间件。具有以下特性:支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型 在一个队列中可靠的先进先出(FIFO)和严格的顺序传递 支持拉(pull)和推(push)两种消息模式 单一队列百万消息的堆积能力 支持多种消息协议,如 JMS、MQ...

2018-09-14 15:14:23 9339 5

原创 Redis 学习笔记(三) 键(key)常用操作

Redis 学习笔记(三) 键(key)常用操作1、Redis 键(key)常用操作参考文档:http://www.runoob.com/redis/redis-tutorial.html参考文档:http://redisdoc.com/1.1 keys * 查看当前库所有的key127.0.0.1:6379> keys *1) "name"1.2 exists ...

2018-07-31 17:47:19 350

原创 Redis 学习笔记(二) 基础知识命令

Redis 学习笔记(二) 基础知识命令1、Redis 数据库个数查看配置文件redis.conf[root@localhost redis-3.0.4]# vi redis.conf 设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id databases 16# Set the number of databases...

2018-07-31 17:46:23 275

原创 Redis 学习笔记(一) redis-3.0.4的安装

Redis 学习笔记(一) redis-3.0.4的安装Redis介绍:​ REmote DIctionary Server(远程字典服务器)​ 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器中文文档地址:http://...

2018-07-31 17:46:08 1386 1

原创 netty 学习笔记(一)客户端与服务端

netty 学习笔记(一)客户端与服务端1、添加pom依赖<dependency>    <groupId>io.netty</groupId>    <artifactId>netty</artifactId>    <version>3.3.0.Final</version></

2018-07-31 09:33:41 224

原创 netty 学习笔记(二)客户端与服务端

netty 学习笔记(二)客户端与服务端什么Netty?  Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。   也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用。Ne...

2018-07-31 09:31:56 301

原创 SpringBoot默认的错误处理机制处理

原理:​ 可以参照ErrorMvcAutoConfiguration;错误处理的自动配置; @Bean@ConditionalOnMissingBean(value = ErrorAttributes.class, search = SearchStrategy.CURRENT)public DefaultErrorAttributes errorAttributes() { re...

2018-07-27 13:36:45 1696

原创 Java 基于NIO的client与server

同步阻塞IO(BIO)同步非阻塞IO(NIO) jdk1.7之前异步阻塞IO(AIO) jdk1.7 及以后 ackage com.willow.io;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channe...

2018-07-27 13:35:10 1141

原创 Docker 学习笔记(四) 安装Centos常用命令和创建容器数据卷

一、Docker阿里云加速:https://dev.aliyun.com/search.html1、打开配置文件[root@localhost system]# vi /usr/lib/systemd/system/docker.service 2、修改配置docker.service 文件;添加镜像加速器地址 #添加阿里云的云加速配置:--registry-mirro...

2018-07-25 16:58:53 416

原创 Docker 学习笔记(一)Docker安装和镜像操作命令

目录 1、简介2、核心概念3、安装linux虚拟机4、在linux虚拟机上安装docker5、Docker常用命令&操作1)、镜像操作2)、容器操作1、简介Docker是一个开源的应用容器引擎;是一个轻量级容器技术;Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个...

2018-07-25 16:35:33 1216

原创 Docker 学习笔记(三)常用命令参数说明

 Docker 学习笔记(三)常用命令说明目录 Docker 学习笔记(一)常用命令说明一、Docker run 命令,创建一个新的容器并运行一个命令二、Docker ps 命令 ,列出容器三、Docker start/stop/restart 命令四、Docker logs 命令,获取容器的日志五、Docker inspect 命令,获取容器/镜像的元数据。...

2018-07-24 16:29:55 266

原创 java网络编程之一URL编程!

java网络编程之一URL编程!URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址。表示为互联网上的资源,如网页或者FTP地址。package com.willow.net;​import org.junit.Test;​import java.io.File;import java.io.FileOutputStream;...

2018-07-19 16:52:06 1142

原创 java网络编程之二 TCP编程和UDP编程

 TCP编程demopackage com.willow.net;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.InetAddress;import java.net.ServerSo...

2018-07-19 16:18:17 202

原创 Dubbo 源码学习笔记(一)Spring容器解析dubbo配置流程

Dubbo 源码学习笔记(一)Spring容器解析dubbo配置流程​ 基于dubbo-2.6.0.jar 内的 META-INF/spring.hanlers 配置,Spring 在遇到dubbo命名空间的时,会回调DubboNamespaceHandler。​ 所有dubbo的标签,都统一用DubboBeanDefinitionParser 进行解析,基于一对一属性的映射,将XML标签...

2018-07-18 16:02:16 483

原创 分布式服务框架Dubbo快速入门(一)快速搭建XML消费者服务者

分布式服务框架Dubbo快速入门(一)快速搭建XML消费者服务者官方文档:http://dubbo.apache.org/#/docs/user/quick-start.md?lang=zh-cn1、创建父项目spring-dubbo 1.1、父项目pom依赖<?xml version="1.0" encoding="UTF-8"?>​<project xmlns="http...

2018-07-13 16:23:19 275

原创 JVM 学习笔记(一)内存结构和垃圾回收过程分析

JVM  学习笔记(一)内存结构和垃圾回收过程分析一、Java中的内存分配:Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,就对数据进行了不同空间的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。具体划分为如下5个内存空间:(非常重要)栈:存放局部变量堆:存放所有new出来的东西方法区:被虚拟机加载的类信息、常量、静态常量等。程序计数器(和系统相关)本地方法栈1、虚拟机栈...

2018-07-13 11:58:52 217

原创 ClassLoader学习之 自定义classLoader和双亲委派原理

ClassLoader学习之  自定义classLoader和双亲委派原理1、ClassLoader原理介绍​ ClassLoader使用的是双亲委托模型来搜索类的,每个ClassLoader实例都有一个父类加载器的引用(不是继承的关系,是一个包含的关系),虚拟机内置的类加载器(Bootstrap ClassLoader)本身没有父类加载器,但可以用作其它ClassLoader实例的...

2018-07-12 20:43:10 1649

原创 Spring-boot整合elastic-job分布式调度解决方案

Spring-boot整合elastic-job分布式调度解决方案文档地址:http://elasticjob.io/docs/elastic-job-lite/00-overview/intro/源码地址:https://github.com/elasticjob源码解析:https://blog.csdn.net/spy19881201/article/details/61631799一、Sp...

2018-07-10 10:55:56 12672 4

原创 MyBatis 学习笔记(八)自定义类型转换器TypeHanlder

MyBatis 学习笔记(八)自定义类型转换器TypeHanlder使用场景:mybatis在预处理语句(PreparedStatement)中设置一个参数时,或者从结果集(ResultSet)中取出一个值时,都会用到TypeHandler。它的作用就是将java类型(javaType)转化为jdbc类型(jdbcType),或者将jdbc类型(jdbcType)转化为java类型(javaTyp...

2018-07-10 10:46:08 1628

原创 MyBatis 学习笔记(七)批量插入ExecutorType.BATCH效率对比

MyBatis 学习笔记(七)批量插入ExecutorType.BATCH效率对比一、在mybatis中ExecutorType的使用1.Mybatis内置的ExecutorType有3种,默认的是simple,该模式下它为每个语句的执行创建一个新的预处理语句,单条提交sql;而batch模式重复使用已经预处理的语句,并且批量执行所有更新语句,显然batch性能将更优; 2.但batch模式也有自...

2018-07-10 10:45:27 39950 17

原创 MyBatis 学习笔记(六)分页插件PageHepler

MyBatis 学习笔记(六)分页插件PageHepler源码:https://github.com/pagehelper/Mybatis-PageHelper中文文档:https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md集成使用 PageHelper 你只需要在 classpath 中包...

2018-07-10 10:44:51 300

原创 MyBatis 学习笔记(五)插件Interceptor原理和开发

MyBatis 学习笔记(五)插件Interceptor原理和开发一、原理 在四大对象(Executor,StatementHandler,ParameterHandler,ResultSetHandler)创建的时候 1、每个创建出来的对象不是直接返回的,而是创建完后再执行这个方法 interceptorChain.pluginAll(parameterHandler); 2...

2018-07-10 10:44:17 4750

原创 MyBatis 学习笔记(四)运行原理,查询执行分析

MyBatis 学习笔记(四)运行原理,查询执行分析public SqlSessionFactory getSqlSessionFactory() {    String resource = "mybatis-config.xml";    InputStream inputStream = null;    try {        inputStream = Resources.ge...

2018-07-10 10:42:55 224

原创 MyBatis 学习笔记(三)运行原理,获取mapper代理对象

MyBatis 学习笔记(三)运行原理,获取mapper代理对象获取接口的代理对象(MapperProxy) getMapper,使用MapperProxyFactory创建一个MapperProxy的代理对象 代理对象里面包含了,DefaultSqlSession(Executor)//3、获取接口的实现类对象//会为接口自动的创建一个代理对象,代理对象去执行增删改查方法DeptMapper...

2018-07-10 10:40:27 1335

原创 MyBatis 学习笔记(二)运行原理SqlSession的初始化

MyBatis 学习笔记(二)运行原理SqlSession的初始化 1、获取SqlSession@Overridepublic SqlSession openSession() {      //defaultExecutorType 执行器默认类型 SIMPLE    return openSessionFromDataSource(configuration.getDefaultExec...

2018-07-10 10:38:49 570 1

原创 MyBatis 学习笔记(一),运行原理SqlSessionFactory的初始化

MyBatis 学习笔记(一),运行原理SqlSessionFactory的初始化 1、根据配置文件返回SqlSessionFactory对象​ 解析文件的每一个信息保存在Configuration中,返回包含Configuration的DefaultSqlSession;​ 注意:【MappedStatement】:代表一个增删改查的详细信息//SqlSessio...

2018-07-10 10:34:31 701

转载 Java8 HashMap源码解析

 Java8 HashMap源码解析 概述在官方文档中是这样描述HashMap的:Hash table based implementation of the Map interface. This implementation provides all of the optional map operations, and permits null values and t...

2018-06-29 16:52:54 175

原创 SpringBoot 应用通过Docker 来实现构建、运行、发布

 1、docker 开启远程访问 ,修改配置 [root@localhost system]# vi /usr/lib/systemd/system/docker.service # vi /usr/lib/systemd/system/docker.service 2、配置文件修改ExecStart,设置自己的IPExecStart=/usr/bin/dockerd -H...

2018-06-28 17:06:01 1588

转载 针对Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1的解决方案

背景:本项目使用JDK1.8编译maven工程的时候出现如下错误:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1pom中如下配置maven插件,配置中声明使用JDK1.8: 一、POM修改[html] view plain copy <plugin>      <groupId&g...

2018-06-28 16:37:17 13819 1

原创 SpringMVC学习笔记(二) DispatcherServlet初始化详解(应用上下文的初始化)

SpringMVC学习笔记(二) DispatcherServlet初始化详解(应用上下文的初始化)1、servlet启动时候 ,容器执行 HttpServletBean的 init()方法//HttpServletBean (org.springframework.web.servlet)public final void init() throws ServletException {...

2018-06-27 11:46:36 351

原创 Spring 注解事物@Transactional开发和源码分析

Spring 注解 事物开发一、声明式事务: 环境搭建: 1、导入相关依赖 数据源、数据库驱动、Spring-jdbc模块<dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-jdbc</artifactId&gt...

2018-06-25 16:29:46 3688

原创 Spring 启动流程refresh()源码解析之一

Spring 启动流程源码解析之一一、Spring容器的refresh()spring version:4.3.12 ,尚硅谷Spring注解驱动开发—源码部分//refresh():543, AbstractApplicationContext (org.springframework.context.support) public void refresh() throws BeansE...

2018-06-25 16:18:27 6703

原创 Spring Aop面向切面编程和源码解析之一

Spring boot Aop面向切面编程AOP:【动态代理】指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式;一、添加pom依赖<!--- AOP --><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-...

2018-06-25 16:18:15 387

原创 Spring Aop面向切面编程和源码解析之二

断点位置: AbstractAutoProxyCreator.setBeanFactory() AbstractAutoProxyCreator.postProcessBeforeInstantiation() //有后置处理器的逻辑; AbstractAdvisorAutoProxyCreator.setBeanFactory()->initBeanFac...

2018-06-25 16:12:49 292

原创 Spring 注解加载外部属性和自动装配之:PropertySource

Spring 注解加载外部属性和自动装配一、@PropertySource 加载外面资源文件@PropertySource(value={"person.properties"})@Configurationpublic class SpringConfigProperty {​    @Bean    public Person person(){        return ne...

2018-06-25 16:11:49 11367

原创 Spring IOC 扩展原理之BeanFactoryPostProcessor和事件监听ApplicationListener

Spring IOC 扩展原理之BeanFactoryPostProcessor和事件监听ApplicationListenerBeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的1、BeanFactoryPostProcessor:beanFactory的后置处理器;在BeanFactory标准初始化之后调用,来定制和修改BeanFactory的内容...

2018-06-25 16:11:40 2177

原创 SpringMVC学习笔记(一)ServletContainerInitializer与Spring MVC加载原理

SpringMvc 容器注解配置和原理: 文档地址:https://docs.spring.io/spring/docs/5.0.2.RELEASE/spring-framework-reference/web.html#mvc-introduction创建项目导入POM依赖<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:...

2018-06-25 16:11:07 801

原创 logback 配置

添加 Logback  POM依赖<!--logback --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> &l...

2018-06-21 11:31:03 160

原创 Spring bean的生命周期和BeanPostProcessor 源码分析

Spring bean的生命周期bean创建---初始化----销毁的过程 容器管理bean的生命周期; 我们可以自定义初始化和销毁方法;容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法 构造(对象创建) 单实例:在容器启动的时候创建对象 多实例:在每次获取的时候创建对象1)、指定初始化和销毁方法​ 通过@Bean指定init-me...

2018-06-15 11:14:18 924

空空如也

空空如也

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

TA关注的人

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