• Netty 心跳检测

    1. 前言本节,我们主要讲解心跳机制 heartbeat,Netty 给我们提供了三个 Handler,分别是 IdleStateHandler、ReadTimeoutHandler、WriteTimeoutHandler,主要目的是检查对方是否有效,也就是说对方是否还在线。2. 为什么需要心跳机制了解 TCP: TCP 协议适用于客户端数量相对比较少,并且通信频繁的业务场景;...

    java技术 2021年08月18日 1638 0
  • idea可以打包但无法运行debug,提示找不到符号

    今天使用IDEA时遇到一个非常奇怪的问题,install和package时都正常,就是无法run或debug。弄了很久,都没有解决。直到找到这个方法,就记录下来:   1、在Idea Terminal 中 输入命令 mvn idea:idea   2、回到IDEA菜单栏,File -> Invadiate Cache/Restart ,清除缓...

    java技术 2021年07月30日 1394 0
  • SpringSecurity代码实现JWT接口权限授予与校验

    SpringSecurity代码实现JWT接口权限授予与校验通过笔者前两篇文章的说明,相信大家已经知道JWT是什么,怎么用,该如何结合Spring Security使用。那么本节就用代码来具体的实现一下JWT登录认证及鉴权的流程。为了大部分的移动端用户观看,本文所有代码均用图片的形式发布,图片点击可放大。有需要源码的朋友可以call我。一、环境准备工作建立Spring Boot...

    java技术 2021年07月22日 1278 0
  • 一键更新并部署JAR服务

    #!/bin/sh cd /data/package/fbs/fbs-hub echo '当前目录:'`pwd` echo '=========================================' echo '开始更新代码...' echo '=========================================' git pull echo...

    java技术 2021年07月03日 1182 0
  • 超详细的jenkins持续集成工作原理、功能、部署方式等介绍

    概述今天简单整理了一下jenkins的一些概念性内容,归纳如下:1、概念jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实时监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。Jenkins可以构建一个自动化的持续集成环境可以...

    java技术 2021年06月30日 1202 0
  • Spring @Autowired注解提示警告

    Field injection is not recommended 警告的主要原因是:使用变量的依赖注入不被推荐。 @Autowired private REListingRepository reListingRepository; 可能很多人都会使用上面代码来进行依赖注入,因为上面的代码最简单,也是可以用的,但有时候你会遇到 IJ 的提示。原因和处理这个代码...

    java技术 2021年02月02日 1575 0
  • Spring—AOP原理

    概述Aspect Oriented Programming,面向切面编程,通过定义相关的切面,我们可以在程序的纵向执行过程中对方法进行拦截,织入我们自定义的逻辑,极大的解耦了我们的业务代码和功能代码在SpringAOP中,在执行目标方法之前,先将满足拦截要求的所有的增强器(内含对应的通知)获取到,然后生成一个拦截器链(会对不同类型的增强器进行排序),再通过这个拦截器链执行相关的...

    java技术 2021年01月29日 2763 0
  • Spring Boot API 的urlencoded提交

    在使用 Sprint Boot 提交 x-www-form-urlencoded 的时候,我们首先需要知道 x-www-form-urlencoded 这个是什么东西。application/x-www-form-urlencoded这应该是最常见的 POST 提交数据的方式了。浏览器的原生 表单,如果不设置 enctype 属性,那么最终就会以 application/x-w...

    java技术 2021年01月28日 1492 0
  • 秒杀mybatis的sqltoy-orm-4.17.15发版

    开源地址:github: https://github.com/sagframe/sagacity-sqltoygitee: https://gitee.com/sagacity/sagacity-sqltoyidea 插件(可直接在idea中检索安装): https://github.com/threefish/sqltoy-idea-plugins更新内容:1、在原有快速分...

    java技术 2021年01月27日 1571 0
  • Xpath定位方法

    相对路径定位(F12直接用工具copy xpath)//*[@id="datagrid-row-r1-2-0"]/td[1]/div/input根据文本信息定位全部文本信息匹配如上HTML 标签为a文本信息未"更新"//a[text()="更新"]部分文本信息包含匹配如上HTML文本信息//a[contains(text(),"更")] 或者 //a[contains(text...

    java技术 2021年01月27日 3667 0
  • ConcurrentHashMap确实很复杂,这样学源码才简单

    之前在写HashMap的底层实现原理和设计背景的时候(看我主页置顶文章),有读者朋友反馈想看ConcurrentHashMap方面的文章,今天为大家带来这篇文章。ConcurrentHashMap相对HashMap来说要复杂的多,HashMap涉及到的知识点相对较少,无非就是数组、链表、红黑树、哈希碰撞、扩容这些东西,但是ConcurrentHashMap涉及到的知识点却比这些...

    java技术 2021年01月26日 1450 0
  • Spring Boot 2.4 丢弃 Enable 资源注解

    在升级 Spring Boot 从 2.3.3 到 2.4 的时候提示:@EnableResourceServer将会被丢弃。@EnableResourceServer 开启资源服务配置,会配置资源服务相关的安全配置。一个资源服务(可以和授权服务在同一个应用中,当然也可以分离开成为两个不同的应用程序)提供一些受token令牌保护的资源,Spring OAuth提供者是通过Spr...

    java技术 2021年01月26日 1179 0
  • ClickHouse留存分析工具十亿数据秒级查询方案

    作者:陈璐,腾讯 CSIG 高级数据分析师本文实践了对于千万级别的用户,操作总数达万级别,每日几十亿操作流水的留存分析工具秒级别查询的数据构建方案。同时,除了留存分析,对于用户群分析,事件分析等也可以尝试用此方案来解决。背景你可能听说过Growingio、神策等数据分析平台,本文主要介绍实现留存分析工具相关的内容。留存分析是一种用来分析用户参与情况/活跃程度的分析模型,可考查进...

    java技术 2021年01月25日 2522 0
  • 跟着我吃透spring核心源码

    前言springmvc,springboot,springcloud以及他们很多配套框架,比如各种stater,springsecurity等所有的基础是spring,作为spring家族的源码分析最基础的部分,这篇文章把spring给大家尽量用最简单的方法,把主要流程讲清楚。为后续的springboot,springcloud,以及其他相关框架分析打下基础。spring框架简...

    java技术 2021年01月25日 1198 0
  • Kafka 原理以及分区分配策略剖析

    一、简介Apache Kafka 是一个分布式的流处理平台(分布式的基于发布/订阅模式的消息队列【Message Queue】)。流处理平台有以下3个特性:可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。可以储存流式的记录,并且有较好的容错性。可以在流式记录产生时就进行处理。1.1 消息队列的两种模式1.1.1 点对点模式生产者将消息发送到queue中,然...

    java技术 2021年01月19日 1231 0
  • 如何使用RabbitMQ实现事件总线

    1 前置阅读在阅读本文章之前,你可以先阅读:RabbitMQ入门什么是观察者模式什么是事件总线2 实现首先,事件源与事件处理的映射字典。private static Dictionary<string, List<object>> eventHandlers = new Dictionary<string, List<object>&g...

    java技术 2021年01月18日 1321 0
  • spring security 业界标准加密策略源码详解及

    密码发展历史果奔时代最初,密码以纯文本格式存储。假定密码是安全的,因为数据存储密码已保存在访问它所需的凭据中。但是,恶意用户能够使用SQL注入之类的攻击找到方法来获取用户名和密码的大型“数据转储”。随着越来越多的用户凭证成为公共安全专家,我们意识到我们需要做更多的事情来保护用户的密码。单向 Hash然后鼓励开发人员在通过诸如SHA-256之类的单向哈希运行密码后存储密码。由于散...

    java技术 2021年01月14日 1252 0
  • Nacos Discovery和Eureka的区别

    Eureka架构图:Eureka架构图1.服务注册(register):Eureka Client会通过发送REST请求的方式,向Eureka Server注册自己的服务。注册时,提供自身的元数据,比如ip地址、端口、运行状况指标、主页地址等信息。Eureka Server接收到注册请求后,就会把这些元数据信息存储在一个双层的Map中。 什么时候注册?在启动微服务的时候。2.服...

    java技术 2021年01月13日 1997 0
  • 对API网关注册和接入的接口安全管理总结

    今天谈下对API网关接入的接口服务进行安全管理方面的内容。在原来谈Kong网关的时候,曾经谈到Kong网关和安全相关的插件能力,其中包括了身份认证插件:Kong提供了Basic Authentication、Key authentication、OAuth2.0 authentication、HMAC authentication、JWT、LDAP authentication...

    java技术 2020年12月20日 1456 0
  • SSO的通用标准OpenID Connect

    简介OpenID Connect简称为OIDC,已成为Internet上单点登录和身份管理的通用标准。 它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。OAuth2实际上只做了授权,而OpenID Connect在授权的基础上又加上了认证。OIDC的优点是:简单的基于JSON的身份令牌(JWT),并且完全兼容OAuth2协议。今天我们将会介绍一...

    java技术 2020年12月16日 1623 0
  • SpringBoot中如何让List和Json自动互转

    之前业务开发时,有一个字段接收的数据是Json格式的,并且需要以Json形式入库:数据库中是这样存储的,这里实际是一个Json数组。[   {     "label": "result1",     "name": "较好",   &nbs...

    java技术 2020年12月15日 2738 0
  • OAuth 2.0授权框架详解

    简介在现代的网站中,我们经常会遇到使用OAuth授权的情况,比如有一个比较小众的网站,需要用户登录,但是直接让用户注册就显得非常麻烦,用户可能因为这个原因而流失,那么该网站可以使用OAuth授权,借助于github或者其他的第三方网站的认证授权,来获取相关的用户信息,从而避免了用户注册的步骤。当然,很可能在第三方网站上授权获得用户信息之后,还需要在本网站填写一些必要的信息进行绑...

    java技术 2020年12月15日 1269 0
  • SpringBoot中如何实现接口的统一返回和异常的统一捕获

    接口的统一返回在开发公司接口时,发现Controller层的接口返回都需要用一个Result包裹,如下图所示:图示代码中无论是创建接口或者查询接口,这里都需要用一个Result去接收,我们来看看Result的结构:这个Result中有几个字段:“code:状态码message:状态信息data:装载正真返回的数据exception:异常数据”然后我们测试下接口,看看返回样式:调...

    java技术 2020年12月15日 1802 1
  • Spring Cloud系列Gateway:自定义断言规则

    尽管Spring Cloud Gateway已经包含了很多路由匹配规则,有时候我们需要开发自定义路由匹配规则来满足需求,下面简单的介绍一下如何自定义路由匹配规则。需求转发请求参数中带有token并且token值为123的请求。实现实现有三步步骤,如下所示修改配置文件spring: profiles: customPredicate cloud: gateway:...

    java技术 2020年12月11日 3832 0
  • 阿里开源的分布式事务框架 Seata

    1. Seata 概述Seata 是 Simple Extensible Autonomous Transaction Architecture 的简写,由 feascar 改名而来。Seata 是阿里开源的分布式事务框架,属于二阶段提交模式。目前github上已经有 12267 颗星了,也很活跃,最新的提交时间很多都是几天前。首先我们回顾一下在单体应用中,例如一个业务调用了3...

    java技术 2020年12月11日 111908 7
  • Swagger3.0官方starter诞生了

    Swagger是研发的好帮手,可以减少前后端的很多沟通成本。甚至在一些比较高级的公司,还能减少和测试人员的沟通成本。所以只要一个项目采用了SpringBoot框架,Swagger几乎是必选的组件。可惜的是,Swagger只是一个工具。集成的时候,需要修改pom文件,增加两个jar包。还要做配置,运气不好的项目还需要修改WebMvcConfigurer中的内容。在SpringBo...

    java技术 2020年12月04日 2284 0
  • 直上云霄!这次聊一聊分布式事务中间件Seata

    简介Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。角色Seata 的设计思路是将一个分布式事务可以理解成一个全局事务,下面挂了若干个分支事务,而一个分支事务是一个满足 ACID 的本地事务,因此我们可以操作分布式事务像操作本地事务一...

    java技术 2020年11月23日 1818 0
  • 工作流Activiti流程图各元素之开始事件和结束事件介绍

    我们常见的工作流流程图,通过各元素的拖拽生成,如下图:要想生成根据业务需求制定的流程图,首先要知道这些构成元素代表的是什么,这篇就来将一下这些元素的作用。通过activiti集成eclipse,会在开发工具的右边显示这些元素:从一级分类中可以看出,分为开始事件、结束事件、任务、子流程和调用节点、网关、边界事件、捕获和触发事件、顺序流等,下面就来介绍一下里面的子元素:一、开始事...

    java技术 2020年11月15日 4102 0
  • Spring Boot Admin 2.2.4 发布,兼容最新版本 Spring Boot

    spring boot admin 2.2.4 版本发布,本版本为 bug 修复版本 主要兼容 spring boot 2.3.x。<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</ar...

    java技术 2020年07月30日 4553 0
  • 正则表达式入门教程学习资料

    引言grep是Linux中用于文件处理的最有用和最强大的命令之一。grep在一个或多个输入文件中搜索与正则表达式匹配的行,并将每个匹配的行写入标准输出。在本文中,我们将探索如何在grep的GNU版本中使用正则表达式的基础知识,该版本在大多数Linux操作系统中默认可用。grep的正则表达式正则表达式(regex)是与一组字符串匹配的模式。模式由操作符、构造文字字符和元字符组成,...

    java技术 2020年07月30日 1428 0