自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序新视界

每一步成长都与你分享。公众号:程序新视界

  • 博客(942)
  • 资源 (11)
  • 问答 (4)
  • 收藏
  • 关注

原创 放弃FastJson!一篇就够,Jackson的功能原来如此之牛(万字干货)

在上篇《经过多方调研,最终还是决定禁用FastJson!》中,讲了FastJson的基本使用以及存在的不确定性问题,所以最终决定在项目中放弃使用,进而选择市面上比较主流,Spring Boot默认绑定的JSON类库:Jackson。本文就来讲解一下Jackson的基本使用以及与Spring Boot的结合与实践。什么是JacksonJackson是比较主流的基于Java的JSON类库,可用于Json和XML与JavaBean之间的序列化和反序列化。没看错,Jackson也可以处理JavaBean与X

2021-02-24 07:57:12 7245 6

原创 经过多方调研,最终还是决定禁用FastJson

老项目中使用到多种json类库,没有统一管理。最近开启全新的项目,准备对json类库进行统一,这样不仅能够压缩jar包的大小,也能够避免某个类库的漏洞导致系统问题。其实,就在前几个月因为FastJson的漏洞,已经全面升级过一次FastJson的版本。现在项目中有用FastJson,有用gson,也有用Jackson。虽然用的类库比较多,但使用的场景并不多,还在可控范围之内。这篇文章重点讲讲对FastJson的一些调研,虽然最终决定强制在项目中禁用FastJson,但在放弃之前,还是要学习一下这个类库的

2021-02-23 09:28:23 1057

原创 SpringBoot的四种异步处理,写这篇文章,我自己先学到了

最近更新了一系列关于异步和回调的文章,比如《一篇文章,搞明白异步和多线程的区别》、《两个经典例子让你彻底理解java回调机制》、《异步请求和异步调用有区别?》,大家感兴趣的话可温习一下。今天再带大家学习汇总一下SpringBoot中异步处理的4种形式,下面开始正文:前言在网络上有关于SpringBoot的异步请求和异步调有两种说法,经过调用这两种说法本质上就是一回事,在《异步请求和异步调用有区别?》一种,已经做过解释了。同时,我们也知道了“服务实现的异步与同步特性完全独立于客户端调用的异步和同步特性

2021-02-21 21:48:50 9794

原创 异步请求和异步调用有区别?直到看到了7年前的一个问答

当你打开本文,首先想说的是,这篇文章不仅仅是在讲一个知识点,更重要的是在讲一种学习方法:质疑与求证。前言最近在研究Spring Boot的异步处理,准备写一篇文章。在搜集资料时发现一篇文章《SpringBoot中异步请求和异步调用》,以及许多它的衍生文章。文章的确不错,但文章中提到的“异步请求和异步调用”这两个概念,一直百思不得其解,衍生文章中也是在混着用。终于忍不住想探究一番,发现除了那篇文章和衍生的文章之外,并没有其他证据来区别这两个概念。直到在Stack Overflow上搜到了一篇七年前的文章

2021-02-16 21:52:56 879

原创 一篇文章,搞懂异步和多线程的区别

最近在研究Spring Boot中的异步处理,发现涉及到异步和多线程的很多知识点,就先写几篇关于异步与多线程的文章,带大一起回顾或学习一下相关的知识点。下面开始正文内容:前言在本文中,我们通过一些通俗易懂的方式来解释异步编程和多线程编程,然后再介绍一下它们之间的区别。什么是异步编程首先来看一下异步模型。在异步模型中,允许同一时间发生(处理)多个事件。程序调用一个耗时较长的功能(方法)时,它并不会阻塞程序的执行流程,程序会继续往下执行。当功能执行完毕时,程序能够获得执行完毕的消息或能够访问到执行的结果

2021-02-15 12:24:22 5060 2

原创 两个经典例子让你彻底理解java回调机制

先让我们通过一个生活中的场景来还原一下回调的场景:你遇到了一个技术难题(比如,1+1等于几?太难了!),于是你去咨询大牛,大牛说现在正在忙,待会儿告诉你结果。此时,你可能会去刷朋友圈了,等大牛忙完之后,告诉你答案是2。那么,这个过程中询问问题(调用对方接口),然后问题解决之后再告诉你(对方处理完再调用你,通知结果),这一过程便是回调。系统调用的分类应用系统模块之间的调用,通常分为:同步调用,异步调用,回调。同步调用是最基本的调用方式。类A的a()方法调用类B的b()方法,类A的方法需要等到B类的

2021-02-08 08:15:22 887 3

原创 在Netty服务被N次攻击之后,终于抓到现行了!

马上就要过春节了,本想着完成手头的任务就可以准备过年了。没想到Netty服务器又被攻击了,当收到服务器报警(CPU飙升报警)信息,就知道对方又下手了。之前是交给下面的兄弟来解决,这次为了过个好年,决定亲自动手把这事给了结了。故事前奏Netty服务是公司比较边缘的服务,只有一台设备在使用,而且代码是之前技术Leader(已离职)写的,加上一直赶工期,所以就没抽出时间去彻底解决这事。当初被攻击没排查代码,看到遭到疯狂请求、CPU跑满、日志打满,还以为是遭遇DDoS攻击了。临时采取了几个措施:分离服

2021-02-04 07:45:52 1386 6

原创 技术转正及年终工作述职报告PPT模板

很多技术的朋友转正或年总总结时都需要用PPT来进行转正演讲或述职演讲。这不,马上年会了,作为技术负责人要代表技术部做一个年总的总结,在网上找了好久都没找到一个合适的述职报表的PPT模板。经过不懈的努力,终于找到12套简约的述职报表模板。分享给大家,共大家参考:模板一:模板二:模板三:模板四:模板五:模板六:模板七:模板八:模板九:模板十:模板十一:模板十二:不管现在有没有用,都赶紧收藏一下吧。完整的PPT模板,扫描关注下面的公众号“程序新视界”,回复“P

2021-01-28 11:38:09 2633 3

原创 SpringBoot2.x系列教程(六十九)Spring Boot整合Shiro,两种方式实战总结(含源码)

Shiro是历史悠久的权限管理框,简单易用,易用集成,同时权限管理也是每个项目必不可少的功能。Spring Boot是Java领域炙手可热的脚手架框架。今天这篇文章就带大家将这两个框架进行整合。通常Spring Boot中整合Shiro,有两种方案:第一,基于原生API进行整合;第二,基于Shiro官方Starter整合。整体而言,官方Starter整合并没有方便很多,因此,本文主要以原则API进行整合,下面就来看看具体的整合方式。创建Spring Boot项目创建Spring Boot项目通常有

2021-01-27 20:02:55 889 2

原创 Shiro中@RequiresRoles使用

Shiro中通过@RequiresRoles注解可检验权限,在检验权限之前先要设置权限:授权方法中给用户添加角色在自定义的Realm中(继承实现AuthorizingRealm)的doGetAuthorizationInfo方法中授权方法中给用户添加角色。@Overrideprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) { String userName =

2021-01-27 09:41:12 5178

原创 shiro触发doGetAuthorizationInfo方法的几种方式

什么情况下会触发shiro的授权检测呢?通常有以下三种方式:方式一:代码中通过Subject对象主动调用权限校验subject.hasRole(“admin”);//或subject.isPermitted(“admin”);这种方式属于在代码中需要校验权限的时候主动调用,判断返回结果来确定是否通过。方式二:通过注解的形式检查对用的方法请求@RequiresRoles("admin")这种方式通常用在Controller的方法上。方式三:页面shiro标签针对ftl等页面,可直接在页

2021-01-27 09:38:19 2351

原创 Shiro身份认证之principals和credentials

所谓的身份验证,即在应用中证明用自己的身份。一般比如提供如身份证ID、用户名等来证明是他本人,而用密码来验证。在《02.Shiro认证与授权原理分析》中我们分析了Shiro验证和授权的基本原理。其中,在验证的流程中涉及到2个概念:principals和credentials。在shiro中,用户需要提供principals(身份)和credentials(证明)给shiro,从而应用能验证用户身份:principals/身份什么是principal?principals:身份,即主体的标识属性,如

2021-01-27 09:34:08 2881

原创 LeetCode 03:面试关:如何找出字符串中无重复最长子串?

LeetCode第3题,“无重复字符的最长子串”,曾经面试的过程中遇到过的一道算法题。通过这道题,我们能够学到算法中一个比较常见的解题方法:滑动窗口算法。由于LeetCode中很多题都是基于“滑动窗口算法”进行解答,因此本篇文章将重点放在“滑动窗口”上,而不仅仅是这道算法题。当理解了滑动窗口的基本原理之后,所有类似的题都可以轻易解答。下面来看具体的题目和解题方法。“无重复字符的最长子串”题目链接:https://leetcode-cn.com/problems/longest-substring-w

2021-01-26 07:32:18 540 1

原创 不解释,全网最全Shiro认证与授权原理分析

本篇为《Shiro从入门到精通》系列第二篇,在上篇《还在手写filter进行权限校验?尝试一下Shiro吧》中,我们学习了Shiro的基本功能、架构以及各个组件的概念。本篇文章继续深入,以官方示例为基础,讲解使用Shiro的流程以及认证和授权的原理分析。下面开始正文:前言Shiro作为常用的权限框架,可被用于解决认证、授权、加密、会话管理等场景。Shiro对其API进行了友好的封装,如果单纯的使用Shiro框架非常简单。但如果使用了多年Shiro,还依旧停留在基本的使用上,那么这篇文章就值得你学习一下。

2021-01-25 09:48:22 935

原创 如何将一个项目同时提交到GitHub和Gitee(码云)上

如果你是GitHub的开源作者,是否因为GitHub访问慢或图片不显示而苦恼?你是否想让你的代码让更多人看到?那么,你可以将一套开源代码同时提交到多个开源平台。当然,如果你已经在这么做了,但是只是手动的复制、分别上传,那么更本篇文章更值得你一看。前言GitHub几乎是每个程序员必逛的地方,但访问GitHub有一个明显的问题,就是网速比较慢,现在GitHub上很多图片信息还没办法正常显示。Gitee(码云)这几年在国内发展势头迅猛,下面我们就以一套代码同时提交到GitHub和Gitee为示例来,来讲解

2021-01-23 10:13:03 980 2

原创 01 还在手写filter进行权限校验?尝试一下Shiro吧

在实践中,发现很多朋友虽然在使用Shiro,但貌似对其并不了解,甚至有的项目还在使用filter来实现权限管理,而网络上相关教程又比较古老。因此,决定为大家更新这么一个关于Shiro的系列教程,最后会整理成册,分享给大家。如果你也想深入学习一下Shiro框架,那么关注一下公众号“程序新视界”,可及时获取最新的文章,等本系列更新完毕会也会第一时间整理成电子版文档分享给大家。第一篇,给大家科普一些基础概念,下面开始正文。前言权限管理是每个系统不可缺少的,它隶属于系统安全的范畴,实现对用户访问系统的控制,按照

2021-01-21 09:21:17 493

原创 LeetCode 02:“两数相加”,小学加法运算而已?

一道小学加法题,竟然在LeetCode上被标记为“中等”难度,有些人“流下了没有技术的眼泪”,有些人“一顿操作猛如虎,一看击败百分五……”。今天我们来看看LeetCode的第二道题“两数相加”。“两数相加”先来看题目描述,对应官方链接:https://leetcode-cn.com/problems/add-two-numbers给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除

2021-01-16 19:12:25 479

原创 自定义SpringBoot默认MVC配置?好几个坑,这篇文章必须珍藏

前言前些天,在项目实践过程中出现了一个奇怪的状况,Spring Boot的参数绑定失效了。而起因只是因为同事把参数上的@RequestParam注解去掉了。我们都知道,如果参数名称和Controller的方法名相同时,根本不需要@RequestParam注解的,Spring Boot会自动帮我们完成参数的绑定。但为什么自动绑定机制失效了呢?本篇文章会为大家揭开谜底,在此过程中也会全面讲解如何在Spring Boot项目中自定义配置WebMvc,以及这其中的很多坑。SpringBoot自定义WebMvc

2021-01-15 07:03:40 911 1

原创 LeetCode 01:有人相爱,有人夜里开车看海,有人LeetCode第一题都做不出来

在LeetCode的第一题下面,有这样一句评论“有人相爱,有人夜里开车看海,有人leetcode第一题都做不出来。”看到这条评论,你是得意的笑呢,还是苦涩的笑?LeetCode第一题为“两数之和”,难度为“简单”,如果这样一个简单的题,没做不出来,的确有些心酸。这就像学一门编程语言时,打印“Hello World”的程序都没写不出来的感觉是一样的,凄凉。下面就来一起看看这道题。“两数之和”题名称为“两数之和”,题目详情如下,对应官方链接:https://leetcode-cn.com/problem

2021-01-12 09:26:31 4338 1

原创 不要再用main方法测试代码性能了,用这款JDK自带工具

作为软件开发人员,我们通常会写一些测试程序用来对比不同算法、不同工具的性能问题。而最常见的做法是写一个main方法,构造模拟场景进行并发测试。如果细心的朋友可能已经发现,每次测试结果误差很大,有时候测试出的结果甚至与事实相反。当然,这不排除是因为软硬件环境因素导致,但更多的可能是因为所使用测试方法自身有问题。比如,不同需要性能比较方法放到一个虚拟机里调用,有可能会互相影响,缺少预热的过程等。本文给大家推荐一款JDK9及以后自带的一款可用于软件基准测试的工具JMH(Java Microbenchmark

2021-01-07 12:32:39 984 1

原创 LeetCode0:学习算法必备知识:时间复杂度与空间复杂度的计算

算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。算法是大厂、外企面试的必备项,也是每个高级程序员的必备技能。针对同一问题,可以有很多种算法来解决,但不同的算法在效率和占用存储空间上的区别可能会很大。那么,通过什么指标来衡量算法的优劣呢?其中,上面提到的效率可以用算法的时间复杂度来描述,而所占用的存储空间可以用算法的空间复杂度来描述。时间复杂度:用于评估执行程序所消耗的时间,可以估算出程序对处理器的使用程度。空间复杂度:用于评估执行程序所占用的内存空间,可以估算出程序对计算机内存的

2021-01-05 10:12:51 1104 1

原创 魔幻的2020,对我来说却是逐渐觉醒的一年

2020年的最后一天,按照惯例总结一下成果,同时也制定一下来年的目标,每年不总得给自己立几个flag。关于公众号先说公众号,其实开通了很多年,直到今天,还差一百多粉丝才突破一万,这样的成绩算是比较差的了,但好歹至今还没放弃。最初写公众号纯粹是个人爱好,并没有把它当做个事来做,所以虽然不断的在写,但内容非常凌乱,也没有统一的主题。最近在看书和与朋友交流的时候才发现,没有统一主题是一个非常严重的问题。没有主题,就没有标签,而标签是大家识别或事物必备的维度。当没有标签,粉丝对你就没有预期,也就没有关注的动力

2020-12-31 18:27:33 937 4

原创 深入浅出了解Java即时编译器原理及实战

学习JVM相关的知识,必然绕不开即时编译器,因为它太重要了。了解了它的基本原理及优化手段,在编程过程中可以让我们有种打开任督二脉的感觉。比如,很多朋友在面试当中还会遇到这样的问题:Java是基于编译执行还是基于解释执行?当你了解了Java的即时编译器,不仅能够轻松回答上述问题,还能如数家珍的讲出JVM在即时编译器上采用的优化技术,而且在实践过程中更深刻的理解代码背后的原理。本文便带大家全面的了解Java即时编译器。即时编译器在部分的商用虚拟机中,比如HotSpot中,Java程序先通过解释器(Inter

2020-12-29 07:41:12 607

原创 如何学习java虚拟机(JVM)相关知识

最近在运营个人的视频号“二师兄…”,在录制JVM及Java基础相关的知识,突然有不少感悟,写一篇文章与大家分享一下,关于写作和关于技术研究相关的内容。很多朋友不知道如何写作,不知道写什么,其实这个问题也一直困扰着我。就比如现在录制视频号内容,一直在思考,录制什么内容核实,内容是素材来源何处?不过经过将近一个月的努力和总结,总算找到一些感觉,分享给大家。第一,我视频号和写作的最大灵感来源就是工作。每当白天工作时,遇到一些难题,review代码时看到同事用错的一些语法,写错的一些代码,都会记录下来,在空闲

2020-12-26 23:12:04 470 3

原创 过滤器与拦截器的N个区别,别傻傻分不清了

Spring的拦截器与Servlet的Filter有相似之处,比如二者都是AOP编程思想的体现,都能实现权限检查、日志记录等。但它们之间又有不少区别,很多朋友工作多年,可能还没有深刻的了解它们的具体使用以及它们之间的区别。本文带大家全面了解一下它们的使用、实现机制以及区别。过滤器(Filter)的详解及使用过滤器(Filter)属于Servlet的范畴,可以认为是Servlet的一种“加强版”,通过实现javax.servlet.Filter接口来实现功能。主要用于对用户请求进行预处理,是个典型的处理链

2020-12-25 09:43:20 1004 3

原创 Java中两个或多个byte数组合并及int类型转数组

在实践中经常会遇到两个btye数组合并成一个,或者多个byte数组合并成一个,以及int类型转byte数组,逆向的byte数组转int类型。下面汇总了上述相关功能的方法,提供了对应的工具类,直接查看源码或更多的工具类可关注公众号“程序新视界”,回复“1005”获得。下面是对应工具类的代码:package com.choupangxia.bytes;/** * Byte相关公共处理工具 * <br/> * 关注公众号:程序新视界;回复"1005"获得更多工具类 * * @aut

2020-12-22 17:57:00 3387 3

原创 根据Token获取用户信息的N种姿势,这种最完美!

Web项目中经常会用token来进行用户的访问验证,那么在获得token之后,如果有很多地方需要根据token获得对应的用户信息,你会怎么获取?本文给大家提供N种方式,对照一下,看看你的项目中所使用的方式属于哪个Level,是不是要赶快升级一下?关于token生成、认证部分的操作本文不会涉及,也就是默认token是经过合法性校验的,本文将重点放在之后进行的业务相关处理,即基于token获取用户信息的方式(部分方式需要基于SpringBoot)。Level1:手动获取通常token会放在header当

2020-12-21 07:34:47 15964 10

原创 同事如此使用StringBuilder,我给他提了一个Bug

字符串的拼接在项目中使用的非常频繁,但稍不留意往往又会造成一些性能问题。最近Review代码时发现同事写了如下的代码,于是给他提了一个bug。@Testpublic void testForAdd() { String result = "NO_"; for (int i = 0; i < 10; i++) { result += i; } System.out.println(result);}本文就带大家从表象到底层的来聊聊,为什么这种写法

2020-12-18 06:32:21 1552 1

原创 只因多看了一眼提示,又一次刷新了@Autowired注释的认知

@Autowired和@Resource都可以用于来实现依赖注入,但前者是Spring提供的,后者为JDK(JSR-250标准)自带的。阿里Java开发规范中推荐使用@Resource。但大多数人往往并没有留意为何如此,甚至代码中的提示信息可能都没留意去看。本文就带大家彻底了解一下这两个注解的功能、运用场景及区别。IDE的提示如果在项目中使用@Autowired进行注入,如下代码:@RestControllerpublic class InjectController { @Autowir

2020-12-17 08:01:19 652

原创 粉丝说SpringBoot集成validation校验参数有坑,我试了试

公众号中分享了一篇文章,关于SpringBoot集成validation校验参数的,粉丝留言说有坑。原留言如下:有坑,你试试^A-\\d{12}-\\d{4}$,这条正则经过validate这个方法无论参数写的对不对都会报验证错误,而用main方法测试是正常的。。话说,针对这种回复我是不太信了,直觉告诉我,肯定是这位粉丝用错了。但既然粉丝有疑问还是需要专门写一个demo来验证一下的。说写就写。SpringBoot集成validation集成过程非常简单,在原项目的pom文件中直接引入如下依赖:&

2020-12-15 14:13:03 6852 14

原创 SpringBoot2.x系列教程(六十八)Spring Boot集成Redis的坑,踩了!

最近项目中使用SpringBoot集成Redis,踩到了一个坑:从Redis中获取数据为null,但实际上Redis中是存在对应的数据的。是什么原因导致此坑的呢?本文就带大家从SpringBoot集成Redis、所踩的坑以及自动配置源码分析来学习一下SpringBoot中如何正确的使用Redis。SpringBoot集成Redis在SpringBoot项目中只需在pom文件中引入Redis对应的starter,配置Redis连接信息即可进行使用了。pom依赖引入:<dependency>

2020-12-15 11:37:11 1936 2

原创 SpringBoot2.x系列教程(六十七)Spring Boot注入RestTemplate及源码解析

引入SpringBoot本来就支持REST服务,因此在SpringBoot项目之间经常需要通过REST的形式来相互调用。本文以具体的实例带大家了解一下SpringBoot中怎么使用RestTemplate进行接口调用。同时,会讲解部分相关源码。RestTemplate的实例化RestTemplate实例通常需要自己进行定制,SpringBoot相关的自动配置bean。但是,SpringBoot提供了自动配置的RestTemplateBuilder,可以用它来创建RestTemplate实例。那么,Sp

2020-12-10 14:41:40 1412

原创 巴铁兄弟加我微信,问如何通过写博客赚钱?

下班路上在等红绿灯,看一眼微信有人申请加好友,通过了。然后,收到了一句“hello”。说实话,有人发像“你好”、“在吗”一类无意义的话,基本上很少回复的。随后又收到一句“english?”,还以为有朋友在逗着玩。直到对方介绍了自己,原来是巴铁兄弟啊。于是,就拿是自己都不知道对错的英语与对方聊了四十分钟,真是在寒风中瑟瑟发抖。努曼是华北电力大学的学生,加我的微信好友只是因为看到我之前写的一篇关于如何通过写博客赚钱的文章。对的,他想通过写中文博客赚钱。下面,就随着与努曼的聊天,聊聊写博客到底能不能赚钱。

2020-12-06 07:37:21 821 4

原创 slf4j中有典型适配器模式,不看一看?

slf4j的日志源码分析第5篇,我们来讲解其中适配器模式的运用案例。历史文章回顾:1、《聊聊这些年我们用过的Java日志框架》2、《slf4j框架源码中是如何实现双重锁的?》3、《slf4j中是如何运用SPI机制兼容各类日志框架的?》4、《slf4j是如何绑定具体的日志框架的?》5、《slf4j中的桥接器是如何运作的?》什么是适配器模式在看slf4j中适配器模式的具体实现之前,我们先来了解一下适配器模式的基础概念和运用场景。适配器模式,运用的场景用一句通俗的话来说就是:用一个包装来包装不兼

2020-12-05 08:18:42 977

原创 Maven中optional和scope元素的使用,你弄明白了?

在梳理项目的过程中发现很多开发同学对Maven依赖文件的配置并不了解,特别是对Maven的optional元素和scope元素的使用也非常随意。这就会导致发布的jar包或war包非常“胖”、编译速度慢,而且还很容易生产jar冲突等问题。本篇文章从optional和scope的使用场景入手,让项目实现一波瘦身。optional元素这里以Spring Boot项目中的使用为例,比如我们在项目中经常使用的热部署组件spring-boot-devtools,就可以使用optional元素来进行定义,对应pom文

2020-12-02 07:10:23 5759

原创 做什么并不重要?真是彻头彻尾的错误。

最近在读《从0到1》,PayPal创始人写的,曾经罗胖好像推荐过,本以为是讲创业的,没想到作者竟然在书中写到哲学、历史、经济等多方面,这么随意的写作风格倒是第一次见。今天读到一段话有所感触,分享给大家:每个身在美国教育体制中的人都没有学会幂次法则来思考。每所中学不管什么课都一律45分钟,每个学生都以相同的步伐向前迈进。在大学中,模范学生痴迷于学习另类的冷门技能,想以此保证自己的未来发展。每所大学都相信“卓越”,教育部门随意给出的几百页按字母顺序的课程表看起来就为了确保“你做什么并不重要,重要的是你要把

2020-12-01 07:43:53 494

原创 最近,也在思考是否继续“北漂”的问题

公众号中一位朋友留言说身边发生了一些事情,感觉在上海待不住了,想回老家。最近我也同样在思考着这个问题:是该选择生活还是选择继续打拼。选择继续留下来打拼,能够保持可观的收入,能够保持在事业上的成就感,能够保持对未来的预期。但始终有一把达摩斯之剑:留不下来。随着年龄的增长,这个问题变得越来越不容回避。继续待在大城市,意味着继续过缺少温度与归属的生活。就像那位朋友说的:没有朋友,没有同学,技术之路越走越窄……但回去可能会面临着其他的烦恼。与另外一朋友闲聊,待在三线城市,公众号收入已经很不错了。但整个城市技术

2020-11-29 23:15:36 662 1

原创 slf4j中的桥接器是如何运作的?

关于slf4j源码分析系列,更多精彩内容,请关注公众号“程序新视界”,持续更新中…阅读分析slf4j的日志源码,发现其中涵盖了许多知识点和优秀的设计,关键它们都是活生生的实践案例。写成系列文章与大家分享,欢迎持续关注。第4篇。前言在日志框架slf4j中有一组项目,除了核心的slf4j-api之外,还有slf4j-log4j12、slf4j-jdk14等项目。这一类项目统称桥接器项目,针对不同的日志框架有不同的桥接器项目。在使用logback日志框架时,并没有针对的桥接器,这是因为logback与.

2020-11-28 08:48:29 671

原创 RocketMQ,同一个topic下是否可以通过不同的tag来进行订阅吗?

针对以上问题,有两个场景:使用阿里云的云服务器的RocketMQ和使用自己搭建的RocketMQ。但无论采用这两种的任何一种,都是可以在同一个topic下,通过tag来进行业务区分的。网上有很多分析相关使用方式的文章,虽然分析的结果都是“不可以”,但我们可以通过其他的一些方案来进行解决。自主搭建的RocketMQ通过自主搭建RocketMQ,然后通过SpringBoot进行集成实现,可以参考在公众号【程序新视界】中的文章《Spring Boot快速集成RocketMQ实战教程》,可关注公众号搜索,也可

2020-11-26 19:27:13 7864 1

原创 SpringBoot2.x系列教程(六十六)Spring Boot快速集成RocketMQ实战教程

前言RocketMQ是目前主流的消息中间件之一,并且自身就支持分布式功能。最初由阿里巴巴团队开发,并且经历过双十一等海量消息场景的考验,后捐赠给Apache开源基金会,这也是为什么我们经常听说RocketMQ是阿里巴巴的消息中间件,项目却在Apache的顶级项目中。网络上通过SpringBoot集成RocketMQ的教程很多,但大多数都无法做到快速、通用的进行集成。本篇文章带大家快速完成基于Spring Boot的集成使用,同时针对一些集成过程中的概念和使用方法以实例进行讲解。RocketMQ的部署

2020-11-24 21:15:59 1390

技术顾问协议模板,word版本

技术顾问协议模板,word版本

2022-08-01

从Drools规则引擎到风控反洗钱系统v0.3.2.pdf

从Drools规则引擎到风控反洗钱系统v0.3.2.pdf ,此版本文档在不断刚更新升级中。

2017-08-22

从Drools规则引擎到风控反洗钱系统V0.2.3

从Drools规则引擎到风控反洗钱系统V0.2.3

2017-08-03

springboot集成drools实现重新加载规则

springboot集成drools实现重新加载规则

2017-08-02

drools calendar 使用demo

drools calendar 使用demo

2017-07-28

drools集成springboot demo

drools集成springboot demo

2017-07-18

建模工具StarUML的使用手册

StarUML的使用手册

2017-05-19

node-v4.5.0-linux-x64.tar.xz

官网下载是在太慢,好不容易下载下来了,索性分享在这里。

2016-11-08

kie-drools 6.4.0 依赖jar包

kie-drools 6.4.0 依赖jar包

2016-09-09

pdf格式文件阅读器

pdf格式文件阅读器pdf格式文件阅读器

2011-06-22

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

TA关注的人

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