- 博客(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
翻译 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
原创 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关注的人