自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(337)
  • 资源 (11)
  • 收藏
  • 关注

转载 Spring之手动注入

本文内容 主要介绍xml中依赖注入的配置 构造器注入的3种方式详解 set方法注入详解 注入容器中的其他bean的2种方式 其他常见类型注入详解 依赖回顾通常情况下,系统中类和类之间是有依赖关系的,如果一个类对外提供的功能需要通过调用其他类的方法来实现的时候,说明这两个类之间存在依赖关系,如:publicclassUserService{publicvoidinsert(UserModelmodel){//插入...

2020-07-26 16:47:03 1036

转载 Spring之Bean生命周期

Spring bean生命周期13个环节 阶段1:Bean元信息配置阶段 阶段2:Bean元信息解析阶段 阶段3:将Bean注册到容器中 阶段4:BeanDefinition合并阶段 阶段5:Bean Class加载阶段 阶段6:Bean实例化阶段(2个小阶段) Bean实例化前阶段 Bean实例化阶段 阶段7:合并后的BeanDefinition处理 阶段8:属性赋值阶段(3个小阶段) Bean实例化后阶段

2020-07-26 10:54:57 248

转载 Redis之布隆过滤器

大白话布隆过滤器本文是站在小白的角度去讨论布隆过滤器,如果你是科班出身,或者比较聪明,又或者真正想完全搞懂布隆过滤器的可以移步。不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,仿佛身在互联网,做着开发的,无人不知,无人不晓,哪怕对技术不是很关心的小伙伴也听过它的名号。我也花了不少时间去研究布隆过滤器,看了不少博客,无奈不是科班出身,又没有那么聪明的头脑,又比较懒...经过“放弃,拿起,放弃,拿起”的无限轮回,应该算是了解了布隆过滤器的核心思想,所以想给大家分享下。布隆过滤器的应用

2020-07-24 16:24:00 254

转载 Redis设计与实现之SDS

字符串存储规则redis没有默认使用c字符串,仅在字符串字面量和使用c字符串。如果字符串为变量时,则使用SDS字符串。SDS定义sds.h/sdshdr结构struct __attribute__ ((__packed__)) sdshdr8 { uint8_t len; /* 字符串长度 */ uint8_t alloc; /* 分配内存大小(除去‘\0’) */ unsigned char flags; /* 标志位(低三位表示类型,其余五位未使用) */

2020-07-24 14:24:04 342

转载 Redis设计与实现之跳跃表

跳跃表简介我们先抛开redis,单独了解下跳越表skiplist本质上也是一种查找结构,用于解决算法中的查找问题(Searching),即根据给定的key,快速查到它所在的位置(或者对应的value)。我们在《Redis内部数据结构详解》系列的第一篇中介绍dict的时候,曾经讨论过:一般查找问题的解法分为两个大类:一个是基于各种平衡树,一个是基于哈希表。但skiplist却比较特殊,它没法归属到这两大类里面。这种数据结构是由William Pugh发明的,最早出现于他在1990年发表的论文《S

2020-07-24 14:17:28 205

转载 OAuth2之概述

一、OAuth 概念开放授权(OAuth)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。 —— 维基百科严格来说,OAuth2 不是一个标准协议,而是一个安全的授权框架。其详细描述系统中不同角色,用户,服务前端应用(如 API )以及客户端(如网站或APP)之间如何实现相互认证。当前 OAuth 协议版本是 OAuth2.0,需要注意的是,OAuth2.0 并不向下兼容 OAuth1.0。在生

2020-06-22 14:12:42 758

转载 SpringBoot之配置文件读取

下面我们来看一下 Spring 为我们提供了哪些方式帮助我们从配置文件中读取这些配置信息。application.yml 内容如下:wuhan2020: 2020年初武汉爆发了新型冠状病毒,疫情严重,但是,我相信一切都会过去!武汉加油!中国加油!my-profile: name: Guide哥 email: [email protected]: location: 湖北武汉加油中国加油 books: - name: 天才基本法 de

2020-06-18 15:23:46 199

转载 SpringBoot之自动装配

使用starter简化依赖配置Spring提供了一系列starter来简化Maven配置。其核心原理也就是Maven和Gradle的依赖传递方案。当我们在我们的pom文件中增加对某个starter的依赖时,该starter的依赖也会自动的传递性被依赖进来。而且,很多starter也依赖了其他的starter。例如web starter就依赖了tomcat starter,并且大多数starter基本都依赖了spring-boot-starter。Spring自动配置Spring Boot会根据类

2020-06-16 20:53:29 1100

转载 Spring之循环依赖

前言   结合Spring Bean加载流程,本文对Spring单例构造器循环依赖及Field循环依赖进行分析。对于构造器循环依赖,目前Spring是无法解决的;Field循环依赖,Spring通过提前暴露实例化Bean及缓存不同阶段的bean(三级缓存)进行依赖排除。网上也有不少一些关于这方面的文章,但作者想从缓存生命周期及多例Bean循环依赖这方面另辟蹊径,深入理解下Spring Ioc的精髓。这是第二篇博文,希望能养成梳理笔记的好习惯。什么是循环依赖?   循环依赖,简单地说,就是循环..

2020-06-12 14:34:07 223 1

转载 Spring之IOC

什么叫控制反转为什么叫做控制反转呢。在传统的模式下,我想要使用另外一个非静态对象的时候会怎么做呢,答案就是 new 一个实例出来。举个例子,假设有一个 Logger 类,用来输出日志的。定义如下:public class Logger { public void log(String text){ System.out.println("log:" + text); }}那现在我要调用这个 log 方法,会怎么做呢。Logger logger =

2020-06-11 21:16:02 170

转载 RPC简介

 在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示。这些程序的特点是服务消费方和服务提供方是本地调用关系。  而一旦踏入公司尤其是大型互联网公司就会发现,公司的系统都由成千上万大大小小的服务组成,各服务部署在不同的机器上,由不同的团队负责。这时就会遇到两个问题:1)要搭建一个新服务,免不了需要依赖他人的服务,而现在他人的服务都在远端,怎么调用?2)其它团队要使用我们的新服务,我们的服务该怎么发布以便他人调用?下文将对这两个问题展开探讨。1 public

2020-06-09 21:37:36 281

转载 RocketMQ之RPC通信(二)

文章摘要:如何设计RPC通信层模型是任何一款性能强劲的MQ所要重点考虑的问题在(一)篇中主要介绍了RocketMQ的协议格式,消息编解码,通信方式(同步/异步/单向)、消息发送/接收以及异步回调的主要通信流程。而本篇将主要对RocketMQ消息队列RPC通信部分的Netty多线程模型进行重点介绍。一、为何要使用Netty作为高性能的通信库?在看RocketMQ的RPC通信部分时候,可能有不少同学有这样子的疑问,RocketMQ为何要选择Netty而不直接使用JDK的NIO进行网络编程呢?这里有必要

2020-06-06 11:52:57 209

转载 RocketMQ之RPC通信(一)

文章摘要:借用小厮的一句话“消息队列的本质在于消息的发送、存储和接收”。那么,对于一款消息队列来说,如何做到消息的高效发送与接收是重点和关键一、RocketMQ中Remoting通信模块概览RocketMQ消息队列的整体部署架构如下图所示:先来说下RocketMQ消息队列集群中的几个角色:(1)NameServer:在MQ集群中做的是做命名服务,更新和路由发现 broker服务;(2)Broker-Master:broker 消息主机服务器;(3)Broker-Slave:broker 消息

2020-06-06 11:49:34 1024

原创 RocketMq之削峰

MQ的主要特点为解耦、异步、削峰,本篇博客只是简单的记录RocketMQ削峰用法,用于减少数据库压力的业务场景。生产者,消费者的配置可以参考以前的文章,这里只列出消费者新增的两个配置: @Bean(initMethod = "start", destroyMethod = "shutdown") public DefaultMQPushConsumer BatchConsumer() { DefaultMQPushConsumer consumer = new Def

2020-06-06 10:20:56 733

转载 缓存与数据库的双写一致性

相信只要是个稍微像样点的互联网公司,或多或少都有自己的一套缓存体系只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,遂笔者想在这想和大家聊一聊:如何解决一致性问题?如何保证缓存与数据库双写一致性,也是现在Java面试中面试官非常喜欢问的一个问题!一般来说,如果允许缓存可以稍微跟数据库偶尔有不一致,也就是说如果你的系统不是严格要求 缓存 + 数据库 必须保持一致性的话,最好不要做这个方案。即:读请求和写请求串行化,串到一个内存队列里去,从而达到防止并发

2020-06-05 17:04:15 292 1

转载 秒杀系统分析和实战

1、秒杀业务分析正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货;秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;2、秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:1.对现有网站业务造成冲击秒杀活动只是网站营销的一个附加活动,这个活动具有时间短,并发

2020-06-05 16:56:47 626

转载 RocketMq之消费方式

最近仍然畅游在RocketMQ的源码中,这几天刚好翻到了消费者的源码,发现RocketMQ的对于push消费方式的实现简直太聪明了,所以趁着我脑子里还有点印象的时候,赶紧来写一篇文章,来掰扯一下,防止过两天就忘得一干二净了。MQ消费方式消费方式就是指消费者如何从MQ中获取到消息,分为两种方式,push(推方式)和pull(拉方式)。1、push(推方式)push,顾名思义,就是推的意思。就是当MQ收到生产者产生的消息的时候,会主动将消息推送到消费者进行消费,这种模式就叫push,也就是MQ将

2020-06-03 22:38:50 6061 1

转载 RocketMq之消息可靠性

1. 消息的发送流程一条消息从生产到被消费,将会经历三个阶段:生产阶段,Producer 新建消息,然后通过网络将消息投递给 MQ Broker 存储阶段,消息将会存储在 Broker 端磁盘中 消息阶段, Consumer 将会从 Broker 拉取消息以上任一阶段都可能会丢失消息,我们只要找到这三个阶段丢失消息原因,采用合理的办法避免丢失,就可以彻底解决消息丢失的问题。2. 生产阶段生产者(Producer) 通过网络发送消息给 Broker,当 Broker 收到之后,.

2020-06-03 22:10:15 519

转载 RocketMq之水平扩展及负载均衡

RocketMQ是一个分布式具有高度可扩展性的消息中间件。本文旨在探索在broker端,生产端,以及消费端是如何做到横向扩展以及负载均衡的。Broker端水平扩展Broker负载均衡Broker是以group为单位提供服务。一个group里面分master和slave,master和slave存储的数据一样,slave从master同步数据(同步双写或异步复制看配置)。通过nameserver暴露给客户端后,只是客户端关心(注册或发送)一个个的topic路由信息。路由信息中会细化为messa

2020-06-03 22:00:25 573

转载 RocketMQ之消息存储和查询原理

一、CommitLogCommitLog,消息存储文件,所有主题的消息都存储在 CommitLog 文件中。我们的业务系统向 RocketMQ 发送一条消息,不管在中间经历了多么复杂的流程,最终这条消息会被持久化到CommitLog文件。我们知道,一台Broker服务器只有一个CommitLog文件(组),RocketMQ会将所有主题的消息存储在同一个文件中,这个文件中就存储着一条条Message,每条Message都会按照顺序写入。也许有时候,你会希望看看这个 Commit..

2020-06-03 07:03:39 840

转载 RocketMq之基础概念及架构解析

一、RocketMQ的起源通常,每个产品的诞生都源于一个具体的需求或问题,RocketMQ也不例外。起初,产品的原型像一个巨石,把所有需要实现的程序和接口都罗列到一起。但随着公司业务的发展,所有的系统和功能都在这个巨石上开发,当覆盖几百上千名开发人员的时候,瓶颈就出来了。这时候,就需要我们把系统进行分解。分解后,就出现了上图中的分布式架构,这类架构最大的特点就是解耦,而RocketMQ的异步解耦意味着底层的重构不会影响到上层应用的功能。RocketMQ另一个优势是削峰填谷,在面临流量的不确定性时

2020-06-02 21:34:59 359

转载 秒杀系统设计思考

前言秒杀大家都不陌生。自2011年首次出现以来,无论是双十一购物还是 12306 抢票,秒杀场景已随处可见。简单来说,秒杀就是在同一时刻大量请求争抢购买同一商品并完成交易的过程。从架构视角来看,秒杀系统本质是一个高性能、高一致、高可用的三高系统。而打造并维护一个超大流量的秒杀系统需要进行哪些关注,就是本文讨论的话题。整体思考首先从高维度出发,整体思考问题。秒杀无外乎解决两个核心问题,一是并发读,一是并发写,对应到架构设计,就是高可用、一致性和高性能的要求。关于秒杀系统的设计思考,本文即基于此 3

2020-05-29 16:52:23 190

转载 Redis之缓存雪崩、击穿、穿透

那提到Redis我相信各位在面试,或者实际开发过程中对缓存雪崩,穿透,击穿也不陌生吧,就算没遇到过但是你肯定听过,那三者到底有什么区别,我们又应该怎么去防止这样的情况发生呢,我们有请下一位受害者。面试开始一个大腹便便,穿着格子衬衣的中年男子,拿着一个满是划痕的mac向你走来,看着快秃顶的头发,心想着肯定是尼玛顶级架构师吧!但是我们腹有诗书气自华,虚都不虚。小伙子我看你的简历上写到了Redis,那么我们直接开门见山,直接怼常见的几个大问题,Redis雪崩了解么?帅气迷人的面试官您.

2020-05-28 17:26:45 162

转载 SpringMvc之线程安全问题

我们知道SpringMVC Controller默认情况下是Singleton(单例)的,当request过来,不用每次创建Controller,会用原来的实例去处理。那么当多个线程调用它的时候,会不会发生线程安全问题呢?多个线程访问同一个对象时,如果不用考虑这些线程在运行时的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。或者说,一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口

2020-05-27 19:22:41 496 1

转载 SpringMvc之HandlerAdapter

1.既生瑜何生亮通过前几篇文章,我们知道根据url可以从HandlerMapping中,获取到我们需要的handler了。有了handler不就可以处理程序了吗?为啥有了HandlerMapping ,还需要HandlerAdapter?来看看DispatcherServlet#doDispatch(request, response) 与 handler之间的问题Servlet入参就2个,但是handler 里各种各样的入参。尤其是我们常用的@RequestMapping这种方式定义的,参数有

2020-05-27 11:23:10 934

转载 SpringMvc之HandlerMapping

一、Handler与HandlerMapping关系Handler可以理解为具体干活的,也就是我们的业务处理逻辑。Handler最终是要通过url 来访问到,这样url 与Handler之间就有一个映射关系了。HandlerMapping的作用就是维护这种映射,对Handler登记在册,对外提供根据url 查询Handler的服务。二、Handler分类SpringMVC为我们提供了多种定义Handler的方式。1.实现Controller接口org.springframewor

2020-05-27 11:07:18 1245

转载 SpringMvc之请求执行流程

首先,让我们来了解一下Spring MVC的几个组件:DispatcherServlet、HandlerMapping、HandlerAdapter以及ViewResolver:1、前端控制器DispatcherServlet(不需要工程师开发),由框架提供作用:接收请求,响应结果,相当于转发器,中央处理器。有了dispatcherServlet减少了其它组件之间的耦合度。用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理

2020-05-26 20:39:00 492

转载 SpringMvc之启动流程

当一个Web应用部署到容器内时(eg.tomcat),在Web应用开始响应执行用户请求前,以下步骤会被依次执行:部署描述文件中(eg.tomcat的web.xml)由<listener>元素标记的事件监听器会被创建和初始化 对于所有事件监听器,如果实现了ServletContextListener接口,将会执行其实现的contextInitialized()方法 部署描述文件中由<filter>元素标记的过滤器会被创建和初始化,并调用其init()方法 部署描述文件中由&l

2020-05-26 19:29:44 656

转载 Tomcat之性能优化

Tomcat是一款Java应用,那么的配置便与其运行性能密切相关,而优化的重点则集中在内存分配和GC策略的调整上,因为内存会直接影响服芻的运行效率和吞吐量,JⅥ垃圾回收机制则会不同程廈地导致程序运行中断。可以据应用程序的特点,选择不同的垃圾回收策略,调整JVM垃圾回收策略,可以极大减少垃圾回收次数,提升垃圾回收效率,改善程序运行性能。优化大纲JVM参数优化 Tomcat配置优化JVM参数优化内存优化Linux下修改TOMCAT_HOME/bin/catalina.sh,在其中加入,可以放

2020-05-18 21:43:34 211

转载 单点登录

一、什么是单点登录?单点登录的英文名叫做:Single Sign On(简称SSO)。在初学/以前的时候,一般我们就单系统,所有的功能都在同一个系统上。后来,我们为了合理利用资源和降低耦合性,于是把单系统拆分成多个子系统。比如阿里系的淘宝和天猫,很明显地我们可以知道这是两个系统,但是你在使用的时候,登录了天猫,淘宝也会自动登录。简单来说,单点登录就是在多个系统中,用户只需一次登录,各个系统即可感知该用户已经登录。二、回顾单系统登录在我初学JavaWe...

2020-05-16 18:50:18 282

原创 Tomcat之安全

配置安全一)删除webapps目录下的所有文件,禁用tomcat管理界面;二)注释或者删除tomcat-users.xml文件内所有用户的权限;三)更改关闭tomcat指令或者禁用tomcat的server.xml中定义了可以直接关闭tomcat实例的管理端口(默认8005)。可以通过telnet连接上该端口后,输入SHUTDOWN(此为默认关闭指令)即可关闭tomcat实例。由于默认关闭tomcat的端口和指令都很简单,默认端口为8005,指令为SHUTDOWN。方案一:更改端口

2020-05-14 22:30:39 209 1

转载 Cookie/Session/Token

我在做面试官的时候,曾经问过很多朋友这个问题: Cookie 和 Session 有什么区别呢?大部分的面试者应该都可以说上一两句,比如:什么是 Cookie?什么是 Session?两者的区别等。但如果再往深入探讨的话,就慢慢有一些朋友不太了解了,谈起原理时就很少有朋友全部回答准确。今天和大家一起深入聊聊有关 Cookie 和 Session 的话题 。第一层楼什么是 Cookie ...

2020-05-08 16:50:49 195

转载 Docker概述

先从认识容器开始什么是容器?先来看看容器较为官方的解释一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。 容器化软件适用于基于Linux和Windows的应用,在任何环境中都能够始终如一地运行。 容器赋予了软件独立性 ,使其免受...

2020-05-06 15:18:33 121

转载 HTTP协议简介

简介HTTP协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。注意:客户端与服务器的角色不是固定的,一端充当客户端,也可能在某次请求中充当服务器。这取决与请求的发起端。HTTP协议属于应用层,建立在传输层协议TCP之上。客户端通过与服务器建立TCP连接,之后发送HTTP请求与...

2020-05-05 16:57:15 337

转载 多级缓存的分层架构

前言在互联网高速发展的今天,缓存技术被广泛地应用。无论业内还是业外,只要是提到性能问题,大家都会脱口而出“用缓存解决”。这种说法带有片面性,甚至是一知半解,但是作为专业人士的我们,需要对缓存有更深、更广的了解。缓存技术存在于应用场景的方方面面。从浏览器请求,到反向代理服务器,从进程内缓存到分布式缓存。其中缓存策略,算法也是层出不穷,今天就带大家走进缓存。正文缓存对于每个开发者来...

2020-05-05 16:26:55 359

转载 Servlet简介

Servlet的作用是为客户提供服务。servlet的角色是接受一个客户的请求,再返回一个响应。请求可能非常简单,例如:给我提供一个欢迎页面;也可能非常复杂,例如:为当前的购物车结账,这个请求会带一些客户端传来的参数,servlet需要知道自己如何使用请求中的参数,还需要知道该返回什么样的响应。一、Servlet1. Servlet受容器管理Java Web服务器处理用户请求的基本过程...

2020-04-22 21:12:19 305

原创 MySql之主从复制

为什么要做主从复制? 在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。通过做主从复制(读写分离)来减轻主数据库的负载 做数据的热备 业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/...

2020-04-19 11:53:11 377

原创 MyCat简介与实践

MyCat简介MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理(类似于Mysql Proxy),用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他...

2020-04-18 22:30:13 526

转载 JVM之类加载流程

前言本文将由浅及深,介绍Java类加载的过程和原理,进一步对类加载器的进行源码分析,完成一个自定义的类加载器。正文(一). 类加载器是什么类加载器简言之,就是用于把.class文件中的字节码信息转化为具体的java.lang.Class对象的过程的工具。具体过程:在实际类加载过程中,JVM会将所有的.class字节码文件中的二进制数据读入内存中,导入运行时数...

2020-03-20 21:21:12 312

转载 JVM之垃圾回收器

前言在之前的几篇博客中,我们大致介绍了,常见的 垃圾回收算法 及 JVM 中常见的分类回收算法。这些都是从算法和规范上分析 Java 中的垃圾回收,属于方法论。在 JVM 中,垃圾回收的具体实现是由 垃圾回收器(Garbage Collector)负责的。正文概述在了解 垃圾回收器 之前,首先得了解一下垃圾回收器的几个名词。1. 吞吐量CPU 用于运行用户代码的时间与 CP...

2020-03-20 20:40:38 102

dubbo整合springboot

dubbo整合springboot

2018-12-12

springboot整合spring事务

springboot整合spring事务,

2018-09-12

Spring之AOP在鉴权和日志记录中的应用

Spring之AOP在鉴权和日志记录中的应用

2018-09-08

spring之AOP(动态代理)

spring之AOP(动态代理),包括jdk动态代理和CGLib动态代理

2018-09-06

spring的Applicationcontext对事件的监听,实现类似MQ的效果

spring的Applicationcontext对事件的监听,在一个applicationContext范围内,实现类似MQ的效果

2018-08-29

SpringBoot整合RocketMq,rocketMq

SpringBoot整合RocketMq

2018-08-24

Netty整合webSocket

Netty整合webSocket,Netty整合webSocket,Netty整合webSocket,Netty整合webSocket,Netty整合webSocket

2018-07-20

springboot整合netty,分客户端和服务端两个项目

springboot整合netty,分客户端和服务端两个项目,springboot整合netty,分客户端和服务端两个项目,springboot整合netty,分客户端和服务端两个项目,springboot整合netty,分客户端和服务端两个项目

2018-07-20

spring整合netty心跳检测

spring整合netty心跳检测,spring整合netty心跳检测,spring整合netty心跳检测,spring整合netty心跳检测

2018-07-20

java 序列化

java 序列化,java 序列化,java 序列化,java 序列化,java 序列化,java 序列化

2018-06-21

jwt,springboot整合

jwt,springboot整合,jwt,springboot整合,jwt,springboot整合,jwt,springboot整合

2018-06-03

空空如也

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

TA关注的人

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