自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序新视界

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

  • 博客(755)
  • 资源 (11)
  • 论坛 (4)
  • 问答 (4)
  • 收藏
  • 关注

原创 《Drools 规则引擎视频教程》相关事宜

非常感谢大家能够有时间来看这篇博客,本篇博客主要介绍一下最近本人正在致力于的Drools 7 规则引擎文档和视频教程相关事项。Drools 本身在国内的技术网站上的资料就比较少,最近的视频教程更是几乎没有。本人最近一段时间正在致力于文档编写(已经完成过半)和视频的录制。同时,博客的编写发表也在同步进行。后期会根据项目中的时间录制实战教程。欢迎大家多多支持。文档、博客、Github代码完全免费开放,视

2017-08-12 10:38:45 12763 14

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

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

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

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

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

2021-01-25 09:48:22 61

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

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

2021-01-23 10:13:03 42

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

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

2021-01-21 09:21:17 51

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

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

2021-01-16 19:12:25 54

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

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

2021-01-15 07:03:40 99

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

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

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

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

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

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

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

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

2021-01-05 10:12:51 80

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

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

2020-12-31 18:27:33 150 2

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

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

2020-12-29 07:41:12 78

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

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

2020-12-26 23:12:04 84 2

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

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

2020-12-25 09:43:20 138 2

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

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

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

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

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

2020-12-21 07:34:47 638 4

原创 同事如此使用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 297 1

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

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

2020-12-17 08:01:19 139

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

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

2020-12-15 14:13:03 5355 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 460 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 220

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

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

2020-12-06 07:37:21 164

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

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

2020-12-05 08:18:42 157

原创 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 538

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

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

2020-12-01 07:43:53 106

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

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

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

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

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

2020-11-28 08:48:29 116

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

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

2020-11-26 19:27:13 641

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

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

2020-11-24 21:15:59 248

原创 slf4j框架源码中是如何实现双重锁的?

阅读分析slf4j的日志源码,发现其中涵盖了许多知识点和优秀的设计,关键它们都是活生生的实践案例。因此专门写成系列文章与大家分享,欢迎持续关注。第1篇。前言阅读源码,必然需要先将源代码下载到本地,本篇为本系列第一篇,因此特意建议大家在阅读本篇文章时看一下配套的源代码(持续更新)。本文章已经将原有的代码fork到笔者的GitHub仓库,后续代码均以fork过来的代码为基准进行讲解。地址:https://github.com/secbr/slf4j好了,本篇文章我们就从使用日志框架最常见的入口类及方法入手

2020-11-16 17:17:29 145

原创 聊聊一周的启发,关于读书和职场

一周过去了,读了一本书,看了不少文章,将在此过程中的感悟与收获分享给大家。对我自己来说,也是学习知识的汇总和整理。《一往无前》朋友圈多次出现的一本书,花了大概六七个小时读完。可谓十分精彩,看到雷军召集各路人才,共谋大事,作为读者也有一种热血沸腾的感觉。创业的过程是吃别人吃不了的苦,做别人做不了的事,同样成就别人成就不了的梦。在创建小米之时,雷军已是财务自由的状态。然而,为了一个梦想,为了“最后一次创业”,依然奋不顾身奋斗十年。小米的10年就是一群最简单执着的工程师,怀着最简单纯粹的想法,用最简单专注

2020-11-08 20:48:16 286 2

原创 一个IDE的提示,引发了对《Java编程思想》的质疑?

前言最近在读slf4j的源码,同时在B站录一套读源码的课程(av:BV1KD4y197Jf),其中一个简单的IDE编码规范的提示,因为多问了几个为什么导致一系列Java基础知识的追踪和验证,最近竟然发现《Java编程思想》书中的内容竟然也有不严谨或者说不一定对的地方。这个追踪问题的答案的过程非常有意思,整合了不少工具、书籍以及Java基础知识。下面我们就来看看到底是什么问题。IDE的提示信息在slf4j的LoggerFactory类中有几个静态方法,方法的修饰为private final stati

2020-10-31 11:35:17 302 4

原创 聊聊这些年我们用过的Java日志框架

日志框架是每个系统必备的功能之一,在日常使用当中却往往没有得到应有的重视,要么跟随“前辈”,原来用什么就用什么,要么随便选择一个……甚至还有项目大量使用System.out.println来打印日志……本篇文章带大家来聊聊Java主流的一些日志框架,已经适用的场景。作为相关技术领域的汇总,也作为一项参考资料。主流的日志框架目前主流的日志框架包括以下几种:Log4j、Log4j2;Logback;Slf4j;JCL (Jakarta Commons Logging),也叫Apache Comm

2020-10-26 13:01:24 300

原创 SpringBoot下的策略模式,消灭了大量的ifelse,真香!

前言项目中有这样一个场景,在公园放置了用来拍摄人像的识别杆,根据用户在不同识别杆之间采集的图象来计算用户的运动距离。由于涉及到许多公园,每个公园的布局不同,识别杆之间距离不同,算法也不同。但代码中每个不同的公园的算法区别都采用ifelse来进行判断处理。这样的写法你能看得下去吗?肯定不能。所以,就用策略模式对此进行了重构。项目采用SpringBoot架构,于是对不同的策略模式写法又进行了一次升级。现在就以实战的角度带领大家来学习策略模式,以及如何将ifelse重构为基于SpringBoot的策略模式。

2020-10-24 06:41:19 528

原创 看到SpringBoot神一样集成Druid,我吐了!

原文首发于公众号:程序新视界,欢迎关注。都说尽量不要在外包团队待太久,事实会告诉你一点都不假。最近接手外包团队的项目,发现很多问题。最令人难以接受的便是在SpringBoot集成Druid数据库连接池时的配置,直接废掉,很无语。在写这个坑之前,还是说一下外包团队一个严重的弊端。为了赶工期,团队自身和甲方都不能够很好的保证代码质量。当劣质代码泛滥,又遇上Ctr+C和Ctr+V,救都救不过来。待久了,想写优质代码都难。同时,又有一大堆烂代码等着你去“学”和“抄”,所以有机会赶紧跳出这个恶性循环。好了.

2020-10-22 06:55:39 586 2

原创 万字详解logback日志框架,再没这么全的了!

老项目中日志使用混乱,某些项目使用log4j,某些项目使用logback,统一是必须的。既然Spring Boot已经将logback做为默认集成的日志框架,全面了解学习是必然了。曾经log4j是流行的日志框架,现在已被它的继任者logback替代,logback更快,更小,更灵活。当然,如果你的项目中还在用System.out.println()来输出内容,那更是得行动起来,要么“逃”吧,要么改造吧。logback简介先来看看logback何许人也,最直接的就是看看它的官网http://logbac

2020-10-21 06:45:21 951 15

原创 Lombok插件如此不好?但我选择继续使用…

最近发现几个大号都在转载一篇《Lombok是让你代码处于“亚健康”状态的真正元凶》的文章,特意仔细阅读了该文,文中的观点基本上都不敢苟同,个人还是会坚持使用Lombok,除非发现一些安全和性能方面的问题。不清楚大号转载此文是因为没仔细审阅文章内容,还是其他别的原因,但还是有必要写一篇文章表达自己的看法。至于读者是否喜欢Lombok插件,是否在实践中使用,看完本篇文章之后可根据自己的喜好和情况而定。Lombok是什么鬼?很多程序员都在抱怨“Java太啰嗦”或有太多的“繁文缛节”。Java语言架构师Bri

2020-10-20 07:26:52 363

原创 IDEA中每天都在用的Project Structure,你了解多少?

Idea这款开发工具的便利之一是很多配置项几乎可直接使用默认项。但针对不同的项目难免需要针对性的配置,本文带大家详细的梳理一遍Project Structure中各项功能,注意收藏,以备不时之需。先说一下写本文的缘由,在项目中用Idea中打开一组SpringBoot项目,结果编译的结果和日志输出的地方与预期不一致,于是仔细研究了Project Structure的配置项,发现此处竟然有很多有用的功能,汇总分享给大家。Project Structure即“项目结构”,它几乎涵盖了一个项目所有的个性化的配置

2020-10-19 07:57:36 11174 19

原创 SpringBoot2.x系列教程(六十五)SpringBoot扫描其他项目的几种方案

最近接手一套基于SpringBoot项目,对项目进行重构调整,将公共部分抽离成子项目。在实践的过程中,发现抽离之后的模板中组件并没有被初始化。于是将排查解决过程中搜集到的方案及知识汇总分享给大家。问题原因问题的原因很简单,因多套系统的package命名不一致。比如业务系统的包命名为com.abc.xx,而公共(common)部分的包命名为com.efg.xx,引入公共jar包时默认是无法初始化的。对于SpringBoot项目,我们知道扫描的路径从启动类所在包开始,扫描当前包及其子级包下的所有文件。上

2020-10-18 07:46:27 460 3

原创 SpringBoot2.x系列教程(六十四)SpringBoot基于jar包启动核心原理及流程详解

得益于SpringBoot的封装,我们可以只通过jar -jar一行命令便启动一个web项目。再也不用操心搭建tomcat等相关web容器。那么,你是否探究过SpringBoot是如何达到这一操作的呢?只有了解了底层实现原理,才能更好的掌握该项技术带来的好处以及性能调优。本篇文章带大家聊一探究竟。打包的核心方法Spring Boot项目的pom.xml文件中默认使用如下插件进行打包:<build> <plugins> <plugin>

2020-10-17 11:13:11 249

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

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

2017-08-02

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

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

2017-08-03

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

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

2017-08-22

drools calendar 使用demo

drools calendar 使用demo

2017-07-28

drools集成springboot demo

drools集成springboot demo

2017-07-18

建模工具StarUML的使用手册

StarUML的使用手册

2017-05-19

高性能MySQL(第2版)

高性能MySQL(第2版)

2017-04-09

从PAXOS到ZOOKEEPER分布式一致性原理与实践pdf电子书

从PAXOS到ZOOKEEPER分布式一致性原理与实践pdf电子书

2017-03-26

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

二师兄-公众号-程序新视界的留言板

发表于 2020-01-02 最后回复 2020-01-02

sqlserver 2000 升级 sp3 问题

发表于 2011-03-01 最后回复 2011-03-02

Linux vi操作

发表于 2011-02-15 最后回复 2011-02-15

新手请教线程同步异步问题

发表于 2010-11-18 最后回复 2010-11-18

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

TA关注的人 TA的粉丝

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