![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 67
fgfvmiygse
这个作者很懒,什么都没留下…
展开
-
java中HttpClient发送https请求忽略SSL证书
import com.alibaba.fastjson.JSONObject;import org.apache.http.HttpEntity;import org.apache.http.client.config.RequestConfig;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpPost;import org.apache.h.原创 2021-11-01 15:30:22 · 5375 阅读 · 1 评论 -
Tomcat架构解析以及设计借鉴
Tomcat 发展这么多年,已经比较成熟稳定。在如今『追新求快』的时代,Tomcat 作为 Java Web 开发必备的工具似乎变成了『熟悉的陌生人』,难道说如今就没有必要深入学习它了么?学习它我们又有什么收获呢?静下心来,细细品味经典的开源作品 。提升我们的「内功」,具体来说就是学习大牛们如何设计、架构一个中间件系统,并且让这些经验为我所用。美好的事物往往是整洁而优雅的。但这并不等于简单,而是要将复杂的系统分解成一个个小模块,并且各个模块的职责划分也要清晰合理。与此相反的是凌乱无序,比如你看到转载 2021-09-09 14:56:29 · 578 阅读 · 0 评论 -
Java内存溢出(OOM)异常完全指南
本文分析什么情况会导致这些异常出现,提供示例代码的同时为您提供解决指南。Nikita Salnikov-TarnovskiPlumbr Co-Founder and VP of Engineering本文内容来源于Plumbr,对原文内容有删减和补充这也许是目前最为完整的Java OOM异常的解决指南。1、java.lang.OutOfMemoryError:Java heap spaceJava应用程序在启动时会指定所需要的内存大小,它被分割成两个不同的区域:Heap space(堆空.转载 2021-04-20 11:50:16 · 907 阅读 · 0 评论 -
拦截器HandlerInterceptor的preHandle、postHandle、afterCompletion方法的作用
转:https://blog.csdn.net/weixin_41767154/article/details/84648873public class MyHandlerInterceptor implements HandlerInterceptor {(1) preHandle方法是进行处理器拦截用的,顾名思义,该方法将在Controller处理之前进行调用。SpringMVC中的Interceptor拦截器是链式的,可以同时存在多个Interceptor,然后SpringMVC会根据.转载 2021-03-29 23:23:15 · 3293 阅读 · 0 评论 -
封装ThreadLocal
为什么要封装ThreadLocal?原因有两点:1、对于Thread,如果希望在Interceptor中存入UserInfo并在Service层通过ThreadLocal把UserInfo钩出来,必须保证Interceptor和Service此时用的是同一个ThreadLocal。但是一个对象如何同时出现在Interceptor和Service呢?各自new一个ThreadLocal可不行,因为此时是两个对象了。比如,在Interceptor创建的对象是紫霞,而Service创建的是青.转载 2021-03-29 23:08:37 · 769 阅读 · 0 评论 -
SprongCloud组件——Feign使用记录
1、GET方法也可以传body,需要用到@SpringQueryMap注解2、对于GET方法而言,若有多个body,且没有用到@SpringQueryMap,feign会自动转换为post请求原创 2021-03-16 09:13:54 · 108 阅读 · 0 评论 -
java WebSocket实现Java后台消息推送
转载自:https://www.cnblogs.com/freud/p/8397934.html参考:https://blog.csdn.net/Jack_EUSong/article/details/790640811.什么是WebSocket WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。2.实现原理 在实现websocket连线过程中,需要通过浏览器发出websocket连线请转载 2021-03-11 14:54:09 · 738 阅读 · 0 评论 -
使用消息中间件时,如何保证消息仅仅被消费一次?
消息中间件使用广泛,常用来削峰填谷、系统解耦、异步处理,异步处理可能是使用的最多的场景了,比如现在的技术博客网站,都采用积分制,用户发表一篇文章后,可以获取想要的积分,为了提升系统的性能,给用户加积分的操作可以异步处理,并不需要放在同步流程中。我们可以把用户ID,需要增加的积分封装成一条消息投递到消息系统中,异步处理加积分操作,由于这是发生在不同服务器之间,消息有可能投递失败、处理失败等问题,从而导致用户加积分失败,还有一种可能是消息重复投递,那么有用就有可能重复加积分,不管出现那种情况,都是不正常的情转载 2020-12-08 14:36:29 · 438 阅读 · 0 评论 -
使用JWT实现Token认证
为什么使用JWT?随着技术的发展,分布式web应用的普及,通过session管理用户登录状态成本越来越高,因此慢慢发展成为token的方式做登录身份校验,然后通过token去取redis中的缓存的用户信息,随着之后jwt的出现,校验方式更加简单便捷化,无需通过redis缓存,而是直接根据token取出保存的用户信息,以及对token可用性校验,单点登录更为简单。JWT架构图使用JWT核心代码:maven依赖: <dependency> .转载 2020-12-07 09:53:10 · 145 阅读 · 0 评论 -
苏宁容器云基于Kubernetes和Contiv的网络架构技术实现
容器云的发展和落地,使得越来越多的无状态服务迁移到容器云,加快容器云的落地。容器云的发展,使得更大限度的利用计算资源,这相对传统虚拟化技术来说,就有了很多优势,例如支持高可用时无缝切换、负载均衡、服务发现、自动扩展、自动化运维。但是新的技术和架构,也随之带来新的问题,大多数服务迁移到容器云之后,因为要面对复杂的数据中心、混合的虚拟机技术并存等等。在传统网络架构、网络设备硬件限制下,例如,白名单要求IP地址能够始终不变、云计算行业规则下的网络限速。在苏宁容器云架构中,针对自身业务特点以及数据中心架构,基于转载 2020-12-05 22:40:32 · 624 阅读 · 0 评论 -
Redis数据结构——跳跃表
前言#跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。这么说,我们可能很难理解,我们可以先回忆一下链表。一、复习跳跃表#1.1 什么是跳跃表#对于一个单链表来讲,即便链表中存储的数据是有序的,如果我们要想在其中查找某个数据,也只能从头到尾遍历链表。这样查找效率就会很低,时间复杂度会很高,是 O(n)。如果我们想要提高其查找效率,可以考虑在链表上建索引的方式。每两个结点提取一个结点到上一级,我们把抽出来的...转载 2020-12-02 13:43:29 · 118 阅读 · 0 评论 -
@RestControllerAdvice作用及原理
在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。参考:@ControllerAdvice 文档一、介绍创建 MyControllerAdvice,并添加 @ControllerAdvice注解。package com.sam.demo.controller;import org.springframework.ui.转载 2020-12-02 11:28:48 · 14518 阅读 · 1 评论 -
maven介绍以及仓库配置pom.xml中repositories属性的意义
什么是Maven仓库在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘资源的浪费,也使得版本的一致性管理变得困难。此外,如果你使用版本管理工具,如SVN(你没有使用版本管理工具?马上试试SVN吧,它能帮你解决很转载 2020-12-01 17:16:53 · 1905 阅读 · 1 评论 -
解决Springboot项目中文乱码的问题
首先,对于mySql连接的问题:若从前端 插入中文数据,进入数据库中出现乱码,则检查数据库的编码以及在application.properties中的连接是否设置编码为UTF-8。 对于通过url传参,出现中文乱码的情况,需要以下几个步骤。 (1). 在application.properties中设置如下参数:# 解决中文乱码的问题spring.http.encoding.force=truespring.http.encoding.charset=UTF-8spring.http.enco转载 2020-11-12 19:14:07 · 864 阅读 · 0 评论 -
从OncePerRequestFilter的源码解读去了解Spring内置的Filter的特别之处以及常见过滤器使用介绍
转:https://cloud.tencent.com/developer/article/1497822前言首先我附上一个截图:从截图上我们可以看到我标红的我们比较熟悉,配置过的一些Filter,他们都继承自OncePerRequestFilter。该Filter从字面上理解:只执行一次的Filter。可能有人会问了,我们自己写的Filter不都只执行一次吗?为何Spring还要专门提供这么一个类来处理呢?这就是本文关心的内容,就Spring内置的这些Filter...转载 2020-11-11 16:46:45 · 1311 阅读 · 0 评论 -
OkHttp使用详解
今天学习了一下OkHttp,在这里做个总结,希望可以帮助到有需要的人,好了,废话不多说,进入正题。一、OkHttp介绍OkHttp是一个优秀的网络请求框架,可能一说到网络请求框架,可能很多人都会想到volley,volley是一个Google提供的网络请求框架,我的博客里也有一篇专门介绍volley的博客,博客地址在此Android网络请求 ------ Volley的使用 那么既然Google提供了网络请求的框架,我们为什么还要使用OkHttp呢,原来是volley是要依靠HttpCient.转载 2020-10-12 14:15:17 · 177 阅读 · 0 评论 -
从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念
作者| 阿里巴巴资深技术专家、CNCF 9个 TCO 之一 李响一、什么是KubernetesKubernetes,从官方网站上可以看到,它是一个工业级的容器编排平台。Kubernetes 这个单词是希腊语,它的中文翻译是“舵手”或者“飞行员”。在一些常见的资料中也会看到“ks”这个词,也就是“K8s”,它是通过将 8 个字母“ubernete ”替换为“8”而导致的一个缩写。Kubernetes 为什么要用“舵手”来命名呢?大家可以看一下这张图:这是一艘载着一堆集装箱的轮船,轮船在大.转载 2020-08-23 17:38:04 · 164 阅读 · 0 评论 -
一关系图让你理解K8s中的概念,Pod、Service、Job等到底有啥关系
转:https://www.jianshu.com/p/60f8dc3d859b查看原文获得更好阅读体验。刚开始接触K8s的同学可能都会觉得有一定的学习难度,扑面而来的各种概念到底是什么。比如,如何提供一个服务给别人,我是应该用Pod还是用Deployment来运行我的应用等,在接下来的文章中,希望能够解答你的这些疑惑。Kubernetes可以看做云原生时代的操作系统,统一管理下层的基础设施,如计算资源、网络资源、存储资源等等。将集群中存在的各种复杂关系抽象成各种API资源,以统一的方式暴露出各转载 2020-08-23 17:34:35 · 2147 阅读 · 1 评论 -
一文详解微服务架构
本文将介绍微服务架构和相关的组件,介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景,因此不会涉及具体如何使用组件等细节。为了防止不提供原网址的转载,特在这里加上原文链接:https://www.cnblogs.com/skabyy/p/11396571.html要理解微服务,首先要先理解不是微服务的那些。通常跟微服务相对的是单体应用,即将所有功能都打包成在一个独立单元的应用程序。从单体应用到微服务并不是一蹴而就的,这是一个逐渐演变的过程。本文将以一个网转载 2020-08-18 14:11:29 · 186 阅读 · 0 评论 -
写在19年初的后端社招面试经历(两年经验): 蚂蚁 头条 PingCAP
前言去年(18年)年底想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer。想着可以总结一下经验,分享一下自己这一段"骑驴找马"过的心路历程。当然,一家之言,难免粗浅,如有不妥,敬请指正。全文有点长,假如只对一家公司感兴趣的话可以直接跳过去:PingCAP准备过程我自己是本科毕业后在老东家干了两年多,老东家算是一家"小公司"(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因转载 2020-08-18 14:09:08 · 845 阅读 · 0 评论 -
CompletableFuture get方法一直阻塞或抛出TimeoutException
转:https://blog.csdn.net/xiaolyuh123/article/details/85023269问题描述最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响应很慢进而影响了其他系统的调用。问题分析首先我们知道CompletableFuture的get()方法值会阻塞主.转载 2020-08-14 16:20:53 · 1353 阅读 · 1 评论 -
Spring MVC的@PostMapping注解
@PostMapping映射一个POST请求是Spring MVC新特性 ,提供了对Restful风格的支持。相似的还有:@GetMapping,处理get请求@PostMapping,处理post请求@PutMapping,处理put请求@DeleteMapping,处理delete请求@PostMapping(value = "/user/login")等价于@RequestMapping(value = "/user/login",method = Re...原创 2020-08-13 14:23:08 · 1706 阅读 · 0 评论 -
@Component 和 @Bean 的区别
转:https://blog.csdn.net/qq_38534144/article/details/82414201Spring帮助我们管理Bean分为两个部分,一个是注册Bean,一个装配Bean。完成这两个动作有三种方式,一种是使用自动配置的方式、一种是使用JavaConfig的方式,一种就是使用XML配置的方式。@Compent 作用就相当于 XML配置@Componentpublic class Student { private String name = ..转载 2020-08-05 14:38:51 · 162 阅读 · 0 评论 -
Spring的基本配置和Spring与Mybatis的整合
转载:https://blog.csdn.net/qq_42371269/article/details/83505269Spring: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构...转载 2020-08-04 16:02:33 · 237 阅读 · 0 评论