自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SwaggerAPI注解详解,以及注解常用参数配置

官网github地址:https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X注解@Api:作用在类上,用来标注该类具体实现内容。表示标识这个类是swagger的资源 。 参数: 1. tags:可以使用tags()允许您为操作设置多个标签的属性,而不是使用该属性。 2. descriptio...

2018-01-29 17:48:17 77637 14

原创 SpringBoot集成Swagger构建api文档

最近在做项目的时候,一直用一个叫做API的东西,controller注解我会写,这个东西我也会用,但是我确实不知道这个东西是个什么,有点神奇。关键还坑了我一次,他的注解会影响到代码的运行,不光是起到注解的作用。所以我就研究了一下。Swagger是什么:THE WORLD’S MOST POPULAR API TOOLING根据官网的介绍: Swagger Inspector:测试AP...

2018-01-25 23:44:09 32749 6

转载 线程池中的阻塞队列选择

这是一个十分...

2020-04-15 15:00:48 4326 1

翻译 Kafka(五、构造可靠的数据传递)

可靠性保证在讨论可靠性时,我们一般会使用保证这个词,它是指确保系统在各种不同的环境下能够发生一致的行为。 ACID 大概是大家最熟悉的一个例子,它是关系型数据库普遍支持的标准可靠性保证。ACID 指的是原子性、 一致性、隔离性和持久性。如果一个供应商说他们的数据库遵循 ACID 规范,其实就是在说他们的数据库支持与事务相关的行为。有了这些保证,我们才能相信关系型数据库的事务特性可以确保应用程...

2019-11-13 11:34:19 468

翻译 Kafka(四、深入Kafka)

集群成员关系kafka 使用zookeeper 来维护集群成员关系。每个broker都有一个唯一标识符。这个标识符可以在配置文件里指定,也可以自动生成。在broker启动的时候,它通过创建临时节点把自己的ID注册到zookeeper。kafka组件订阅Zookeeper的 /brokers/ids 路径,当有broker加入集群或退出进群时,这些组件就可以获得通知。如果你要启动另一个具有与相同...

2019-11-12 18:39:37 569

原创 Kafka(三、Kafka消费者 - 从Kafka读取数据)

Kakfa 消费者配置同样由于配置太多,在此不一一列举,只显示使用率最高的几个配置,其他配置请参考官网。http://kafka.apache.org/documentation/#consumerconfigsNAMEDESCRIPTIONTYPEDEFAULTVALID VALUESkey.serializerkey序列化,可以使用Kafka默认的序列化和自定...

2019-11-08 17:30:04 1620

原创 Kafka(二、Kafka生产者 - 向kafka写入数据)

Kakfa 生产者配置由于配置太多,在此不一一列举,只显示使用率最高的几个配置,其他配置请参考官网。http://kafka.apache.org/documentation/#producerconfigsNAMEDESCRIPTIONTYPEDEFAULTVALID VALUESkey.serializerkey序列化,可以使用Kafka默认的序列化和自定义序...

2019-11-07 17:27:30 882

原创 Kafka(一、Kafka简介)

kafka官网地址:http://kafka.apache.org/intro.htmlKakfa简介Apache Kafka 是一个分布式流平台。流媒体平台有三个关键功能:发布和订阅记录流,类似于消息队列或企业消息系统。以容错持久的方式存储记录流。当记录流产生的时候可以即时处理。kafka通常用于两大类应用:构建可在系统或应用程序之间可靠获取数据的实时流数据管道。构建实时...

2019-10-30 14:27:15 504

原创 Caffeine缓存使用

package com.study.caffeine_cache;import com.alibaba.fastjson.JSON;import com.github.benmanes.caffeine.cache.*;import com.study.domin.Airport;import com.study.mapper.AirPortMapper;import org.chec...

2019-09-25 17:58:01 3657 1

转载 走向未来-caffeine

整理自:https://juejin.im/post/5b7593496fb9a009b62904fa#heading-12https://www.cnblogs.com/liujinhua306/p/9808500.htmlguava cache的功能的确是很强大,满足了绝大多数的人的需求,但是其本质上还是LRU的一层封装,所以在众多其他较为优良的淘汰算法中就相形见绌了。而caffei...

2019-09-25 17:43:19 459

转载 你应该知道的缓存进化史

本文转载自:https://juejin.im/post/5b7593496fb9a009b62904fa#heading-121.原始社会 - 查库在大家的一般开发过程中,会直接查库。在流量不大的时候,查数据库或者读取文件是最为方便,也能完全满足我们的业务要求。古代社会 - HashMap当我们应用有一定流量之后或者查询数据库特别频繁,这个时候就可以祭出我们的java中自带的Hash...

2019-09-25 17:42:43 550

转载 Redis使用注意事项(欢迎补充)

整理自:https://nicky-chen.github.io/2018/08/07/cache-redis-optimize/一、键值设计1. key 名设计【建议】: 可读性和可管理性以业务名 (或数据库名) 为前缀 (防止 key 冲突),用冒号分隔,比如业务名: 表名:id例如:ugc:video:1【建议】:简洁性保证语义的前提下,控制 key 的长度,当 key 较多...

2019-09-17 15:19:13 2423

翻译 Apollo配置中心架构剖析以及对比分析

Apollo 官网:Github简介Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。Java客户端不依赖任何框架,能够运行...

2019-08-29 18:53:03 1308

原创 SpringAop (四、AOP源码解析 之 获取 BeanDefinition 再之 applyBeanPostProcessorsAfterInitialization)

上一篇文章说完了applyBeanPostProcessorsBeforeInitialization,那么这篇文章说下applyBeanPostProcessorsAfterInitialization,也就是在Bean初始化完,调用的后置处理器。

2019-08-10 13:23:11 2213 1

原创 SpringAop (三、AOP源码解析 之 获取 BeanDefinition 再之 applyBeanPostProcessorsBeforeInstantiation)

还是从Spring Boot 自动配置开始看。spring.factories# Auto Configureorg.springframework.boot.autoconfigure.aop.AopAutoConfiguration,\AopAutoConfiguration@Configuration@ConditionalOnClass({ EnableAspectJAutoP...

2019-08-06 16:23:19 2928 3

原创 SpringAop (二、AOP源码解析 之 创建 BeanDefinition)

还是从Spring Boot 自动配置开始看。spring.factories# Auto Configureorg.springframework.boot.autoconfigure.aop.AopAutoConfiguration,\AopAutoConfiguration@Configuration@ConditionalOnClass({ EnableAspectJAutoP...

2019-08-06 16:22:58 1105

原创 SpringAop (一、AOP基础概述以及示例)

说过IOC,就接着说一下AOP吧。AOP是个啥?IOC是控制反转,将Bean的初始化交给Spring容器,然后通过DI依赖注入到程序中,那AOP是干嘛的?它有没有什么类似DI的方法?AOPAOP 是 Aspect Oriented Programming 的缩写,翻译为:面向切面编程所以切面是什么意思?理解了切面,我们才是真正的理解了AOP。在实现业务的时候,每个接口都会做用户是否被禁...

2019-08-01 16:51:22 335

原创 Spring 4.x IOC介绍(六.DI — Dependency Injection 依赖注入)

既然说到了IoC,那么一定要说一下DI。DI — Dependency Injection 依赖注入既然叫依赖注入了,我们要清楚几个问题:问题:谁依赖谁?谁注入谁?注入了什么?回答:应用程序依赖于IoC;IoC容器注入应用程序某个对象,应用程序依赖的对象;注入某个对象所需要的外部资源(包括对象、资源、常量数据);这里还是介绍两种获取Bean的方法,当然最后的代码逻辑肯...

2019-07-28 18:03:13 360

原创 Spring 4.x IOC介绍(五.Spring boot 启动流程以及 IoC 构建)

之前的文章介绍了:BeanFactory 、ApplicationContext、WebApplicationContext也写了各个部分的实现,总觉得缺点什么,最近整理自己博客的时候,终于发现了。少SpringBoot的啊。Spring 4.x IOC介绍(一.BeanFactory 、ApplicationContext、WebApplicationContext之BeanFactory)...

2019-07-27 19:05:18 605

原创 Spring事务(五、源码详解)

之前说到了“编程式事务管理”以及“声明式事务管理”,下面我们来分析一下这两个Spring实现原理以及看下源代码编程式事务管理编程式事务管理调用了TransactionTemplate。那就从这里入手看下TransactionTemplate的继承结构:可以看到继承了DefaultTransactionDefinition类,同时实现了TransactionOperations 以及 In...

2019-07-25 12:05:32 892

原创 Spring事务(四、编程式事务管理以及声明式事务管理)

编程式事务管理在实际应用中,我们很少通过编程来进行事务管理。但是Spring还是位编程式事务管理提供了模板类:TransactionTemplate。其在org.springframework.transaction.support包下。来满足一些特殊场合的需要。所以下面主要说的就是基于TransactionTemplate的编程式事务管理。先看下例子:public class Trans...

2019-07-19 12:46:37 272

翻译 Spring事务(三、Spring事务管理以及事务传播)

在Spring事务管理SPI(Service Provider Interface)的抽象层主要包括三个接口分别是:PlatformTransactionManager,TransactionDefinition,TransactionStatus,均位于org.springframework.transaction包下。TransactionDefinition用于描述事务的隔离级别、超时时间...

2019-07-17 18:56:45 382

原创 Spring事务(二、源码分析之ThreadLocal)

Thread在管理request作用域的Bean、事务管理、任务调度、AOP等模块中都有它的身影,所以想了解Spring事务管理的底层技术,ThreadLocal是必须攻克的“山头堡垒”。ThreadLocal是什么ThreadLocal未解决多线程程序的并发问题提供了一种新的思路,使用这个工具类可以很简洁地编写出优美的多线程程序。ThreadLocal,顾名思义,它不是一个线程,而且保存线...

2019-07-16 15:19:30 989

原创 Spring事务(一、数据库事务)

本文整理自:《精通Spring4.X 企业应用开发实战》什么是事务:事务是一组原子性的SQL查询,是一个独立的工作单元。要么所有全部执行成功,要么全部执行失败。这种思想反映到数据库上,就是多条SQL语句,要么所有执行成功,要么所有执行失败。事务的四个特性:原子性(Atomicity):表示组成一个事务的多个数据库操作是一个不可分割的原子单元(可以理解为一个整体),只有所有的操作执行成...

2019-07-12 17:17:12 195

原创 Comparator 使用详解及部分代码解析

Comparator使用,源码解析。List排序以及获取最大值

2019-07-04 14:42:04 6801 4

原创 redis 数据结构与对象

本文基于《Redis 设计与实现》第一部分整理。数据结构简单说下redis的数据结构,这些在网上也都有很详细的解释,《Redis 设计与实现》这本书基于Redis3.0的,但是现在已经5.0 了,所以有些数据结构发生了变化,其中我自己实现发现了一部分,可能还有没发现的。慢慢实践吧简单动态字符串(Simple dynamic string)为什么叫简单动态字符串链表(List)字典...

2019-04-26 18:04:19 204

原创 HttpServletRequest 学习,基于Servlet 4.0

官方API 基于Servlet 3.0Servlet 4.0 的主要新功能Servlet 4.0 的主要新功能为服务器推送和全新 API,该 API 可在运行时发现 servlet 的 URL 映射。服务器推送是最直观的 HTTP/2 强化功能,通过 PushBuilder 接口在 servlet 中公开。服务器推送功能还在 JavaServer Faces API 中实现,并在 Rende...

2019-04-17 18:04:21 1251

转载 过滤器和拦截器的区别

整理自:https://www.cnblogs.com/panxuejun/p/7715917.html先看下权威的说法:过滤器和拦截器的区别:总体区别:拦截器是基于java的反射机制的,而过滤器是基于函数回调。拦截器不依赖与servlet容器,过滤器依赖与servlet容器。拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。拦截器可以访问action上下...

2019-04-16 13:47:44 4104 2

原创 Spring Boot 自定义注解 + 拦截器

先看一个大家比较熟悉的东西,for example@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented...

2019-04-16 11:38:23 4666 1

原创 Redis报错:-bash: redis-cli: command not found

同样,安装redis后,使用redis-cli指令报错:sudo cp src/redis-cli /usr/local/bin/将redis-cli拷贝到bin下,让redis-cli指令可以在任意目录下直接使用

2019-03-14 17:51:11 20940 2

原创 Redis报错:xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing

今天安装Redis的时候,报了一个错误:xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun后来发现是因为Mac最新场景下安装Xcode时已经没...

2019-03-14 17:27:07 13811 2

原创 JUC包 — locks — AbstractQueuedSynchronizer(AQS源码分析)

继续拆解JUC包,其中子包除了atomic还有一个locks包。打开之后我们能看到几个熟悉的锁,比如:Lock,LockSupport,ReentrantLock,ReadWriteLock,ReentrantReadWriteLock等。但是里面还有一个非常重要的类,ReentrantLock,ReentrantReadWriteLock的底层都是由它实现。这个类就是——AbstractQueu...

2019-02-21 17:12:35 240

原创 JUC包 — atomic包—AtomicLong,AtomicIntegerArray等类

之前看了AtomicInteger的使用,代码。我们再看下atomic包下的其他类。我们先对其进行简单的分类:第一类:使用原子的方式更新基本类型AtomicIntergerAtomicBooleanAtomicLong在之前的文章介绍过AtomicInterger:https://blog.csdn.net/java_yes/article/details/83864042而Atomi...

2018-12-04 18:26:58 233

原创 关于Unsafe类一些知识

我们看过了AtomicInteger类,会发现里面有个类:private static final Unsafe unsafe = Unsafe.getUnsafe();同时调用了一个方法:valueOffset = unsafe.objectFieldOffset (AtomicInteger.class.getDeclaredField("value"));这个Unsafe类是干...

2018-11-27 19:22:19 1584

原创 JUC包 — atomic包—AtomicInteger

打开JUC包,看见的第一个就是atomic包,看下包结构:JAVA版本:1.8.0_172我们简单的回顾一下原子性。原子性原子性是指:一个操作是不可中断的,要么全部执行成功,要么全部执行失败。在具体点,就是在多个线程一起执行的过程中,一个操作一旦开始,就不会被其他线程所干扰。以保证数据的准确性。举几个常见的例子: 1. int a = 10; 2. a++; 3. int b...

2018-11-08 18:57:00 889

原创 IDEA debug 调试 —— Evaluate Expression窗口使用以及注意事项

昨天晚上调试代码的时候发现一个调试窗口—— Evaluate Expression我们再用IDEA调试代码的时候,虽然很数值都可以显示出来,可有些东西还是看不到的,比如加载的mapper,xml,或者一些需要计算才有数值的东西。但我们可以通过 Evaluate Expression窗口进行查看。下面举个栗子:一:我们在加载xml的文件的时候,在这里打断点:二:右键—找到Evaluate E...

2018-10-23 19:20:12 24523

原创 Spring 4.x (五、BeanFactory 源码分析)

我们在之前的文章简单的介绍了BeanFactory,现在看下源码。启动我们看下之前的代码ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();// 获取xml文件。生成ResourceResource res = resolver.getResource("classpath:resour...

2018-10-09 16:22:37 324

原创 Spring 4.x IOC介绍(四.BeanFactory 、ApplicationContext、WebApplicationContext——总结)

前面对BeanFactory 、ApplicationContext、WebApplicationContext分别进行了分析,下面进行一下总结。BeanFactory继承体系:BeanFactory作为一级接口,其子接口有HierarchicalBeanFactory、ConfigurableBeanFactory等。作用:初始化:ApplicationContext...

2018-08-27 16:52:53 277

原创 Spring 4.x IOC介绍(三.BeanFactory 、ApplicationContext、WebApplicationContext之WebApplicationContext)

WebApplicationContextWebApplicationContext是专门为Web应用准备的,它允许从相对于Web根目录的路径中装载配置文件完成初始化工作。从WebApplicationContext中可以获得ServletContext的引用,整个Web应用上下文对象将作为属性放置到ServletContext中,以便Web应用环境可以访问Spring应用上下文。Spring...

2018-08-24 15:46:07 298

原创 Spring 4.x IOC介绍(二.BeanFactory 、ApplicationContext、WebApplicationContext之ApplicationContext)

ApplicationContext介绍如果说BeanFactory是Spring的“心脏”,那么ApplicationContext就是完整的“身躯”了。ApplicationContext由BeanFactory派生而来,提供了更多面向实际应用的功能,在BeanFactory中,很多功能需要以编程的方式实现,而在ApplicationContext中则可以通过配置的方式实现。App...

2018-08-16 18:31:45 2358

空空如也

空空如也

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

TA关注的人

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