自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

佛系程序员

命由己造,相由心生,世间万物皆是化相,心不动,万物皆不动,心不变,万物皆不变

  • 博客(29)
  • 问答 (1)
  • 收藏
  • 关注

原创 CentOS 7安装Elasticsearch7.7.0和Kibana

centos7安装elasticsearch和kibana。

2024-07-06 18:17:37 770

原创 Spring项目打印请求日志,记录用户操作日志相关实现

最近公司的项目,客户临时追加一个需求,要看到使用用户的操作日志。类似于下方那样。此项目是网上的一个叫做xboot的项目,功能挺齐全的,可以参考。回到此功能,这个功能并不复杂,主要就是记录并显示用户请求了哪些业务方法,ip,请求时间,请求参数等信息。我这里想到了三种实现方式,这里分别说说。AOP代理实现方式这种实现方式,其实就是定义一个切面,去横切指定的Controller方法,然后用环绕通知这种advice,在调用原目标方法前记录一些信息,在执行目标方法后再记录一些信息,最终打印或存储日志。这种

2021-11-15 00:02:23 2230

原创 CentOS 7 安装JDK1.8(yum方式)

记录一下安装JDK1.8的步骤。yum方式安装JDK1.首先查询当前本机可安装的所有JDK的版本。[root@linux zhengbh]# yum -y list java*查询结果如下:2.安装jdk正常只需要安装jre环境即可,如果要安装jdk环境,则要安装java-1.8.0-openjdk-devel包。这里我们都安装。[root@linux zhengbh]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

2021-10-07 21:33:25 3835

原创 CentOS 7 安装MySQL5.7(yum方式)

安装MySQL的yum仓库1.下载MySQL5.7的rpm仓库[root@linux zhengbh]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm2.安装MySQL5.7的yum 仓库[root@linux zhengbh]# yum -y install mysql57-community-release-el7-10.noarch.rpm3.查看是否安装成功[root@l

2021-10-07 11:12:03 354

原创 压缩文件或文件夹工具类

最近有个需求是要压缩指定目录下所有的文件及问价夹。看了网上一些实现,明白了大概流程,于是为了契合自己的业务需求,自己封装了个工具类。支持功能给定一个文件夹或文件的路径,输出的压缩包路径,生成压缩包。给定一个路径集合,将不同路径的文件或文件夹下的包压缩在一个包下。可以自行决定是否添加所有文件的上级文件夹名称。实现代码/** * @Auther: binghua.zheng * @Date: 2021/9/5 14:14 * @Description: */public class F

2021-09-05 22:21:04 216

原创 关于@Qualifier注解的一个新的发现

问题描述今天在研究Spring Cloud的Ribbon源码时遇到的一个问题。大家还记得怎么启动Ribbon负载均衡功能吧。不使用feign这种方式,单纯的声明一个RestTemplate的bean,然后在方法上加上@LoadBalanced注解即可,ribbon相关的依赖jar包在eureka client是默认提供的,不需要额外引入,如下方所示。/** * @Description * @Author binghua.zheng * @Date 2021/6/21 23:41 * @Ver

2021-06-22 23:24:01 625 1

原创 Spring Boot - 01.对Spring Boot 的认知和基本使用

null

2021-06-14 01:11:02 147

原创 记录自己常用的idea插件以及初始配置

又一次重做了系统,自己又没有导出Idea配置的习惯,每一次都要重新上网查询需要装哪些插件,需要初始化哪些配置。这次就单独开个文章记录自己个人认为不错的插件及配置。常用Idea插件1. Background Image PlusBackground Image Plus主要是用于修改idea工作区背景图片的,注意名字别错了,最好直接复制过去搜索,插件库里有好几种,别安装错误了。这个几乎是我永远不会忘记装的,虽然它对你的工作没有实质性帮助,但是它不可或缺的可以让你面对电脑不再单调。比如下面我设置的我老

2021-06-07 23:51:06 349 4

原创 解决windows中hosts文件找不到的问题

问题描述新做的一个win10的系统,demo项目需要修改host文件,用SwitchHosts软件尝试打开文件,结果提示在C:\Windows\System32\drivers\etc 下找不到host文件。解决方案快捷键 win+r ,输入命令cmd打开windows的cmd命令行窗口。然后输入以下内容。(切记不要使用PowerShell那个窗口,会报格式问题的错误。)for /f %P in ('dir %windir%\WinSxS\hosts /b /s') do copy %P %wind

2021-06-07 00:00:00 3592 1

原创 Maven---彻底理解聚合项目和父子模块的关系

实际的开发项目中,使用maven搭建聚合项目或父子模块,这种类型的项目现在不多了,但在我们平时自己搭建的这篇博客介绍Maven关于聚合项目和父子模块的相关知识。

2021-02-08 00:14:01 7606 9

原创 Maven---scope和依赖传递的介绍

做了开发几年了,项目中Maven没少用,却几乎没有深入了解过,一直把它作为管理各种依赖jar包的工具,平时偶尔有jar包冲突,也是百度解决。今天就好好理一理pom.xml里的一些标签如scope和option相关的作用。本文的内容更多的是参考了《Maven实战》这本书,所以有些内容或例子会以此书为模板。scope的作用这个scope在书中的解释为依赖范围,大意是说在每套代码在编译,运行,以及测试时都会有一套自己的classpath,而每个依赖的scope就是指定此依赖在每一个classpath下是否会

2021-02-06 23:20:19 1353

原创 Spring AOP通知的执行顺序模型分析与代码验证

这篇博客的目的是要理清Spring AOP中各种通知的执行顺序,主要是同一切面内和不同切面内通知的执行顺序区别,以及如何在切面级别上更改顺序?

2021-01-30 22:58:43 476

原创 源码分析-Spring AOP的通知执行策略(三)

在使用Spring AOP的过程中,我们会用@Before,@Around,@After,@AfterReturning,@AfterThrowing注解标注在切面的方法上,以此来作为通知作用于某个切点上。这篇博客,我们就分析这些通知是如何执行的?

2021-01-29 00:52:57 413 2

原创 源码分析-Spring AOP是如何实现的?(二)

接着上篇继续说Spring AOP,篇幅有限,上篇主要介绍了搭建Spring AOP的初始化环境,以及Spring实现这一功能的核心思路,这篇专门从源码分析Spring是如何实现AOP的。AOP流程核心源码分析此处分析源码也是按照我们之前所猜测的AOP实现步骤来逐条分析和验证。首先看一下实例化我们的UserService前,Spring容器里都有什么?可以看到,此时bean容器里只有切面类userAspect,要获取的userService,以及我们提前实例化好的BeanPostProcessor

2021-01-21 23:32:34 210 5

原创 源码分析-Spring AOP是如何实现的?(一)

本文目的此篇博客主要目的是要理清Spring中实现AOP这一编程思想的的具体思路。由于Spring AOP的源码非常多且繁琐,所以这里着重介绍Spring对AOP的核心源码实现,一些辅助功能的源码实现细节不会过多讲述,同时,我们知道,Spring 对目标类的代理有两种方式----JDK Proxy和Cglib,本篇主要以JDK这种代理方式来分析。既然说Spring AOP的源码,需要读者至少要知道AOP如何使用,同时也要对Spring IOC的实现流程或者说bean的生命周期有部分了解,这部分知识本文不会

2021-01-19 22:49:34 391 2

原创 源码分析-Spring是如何与Mybatis整合的?

本文主要讲Spring和Mybatis整合的源码分析,侧重点在于源码分析Spring如何将我们定义的Mapper接口加载到Spring容器内?我们从Spring容器获取到的Mapper对象到底是什么?它又是如何来的?Mybatis部分的相关源码不会着重讲。这部分源码主要在mybatis-spring这个jar包中,此jar包不是Spring官方的,看Spring的做法,可能Spring项目组没太看的上mybatis这个ORM框架,毕竟mybatis属于半自动框架,国外程序员可能更偏向于JPA这种。不过,目

2021-01-12 00:51:26 246 1

原创 源码分析-spring是如何解决循环依赖的?

什么是循环依赖? Spring中的循环依赖指的是A类注入了B类属性,而B类又依赖了A类属性。如果有这种情况,那么在创建A对象的时候,B还没有创建,如果去创建B,那A还没有创建。这种情况,Spring是如何解决的呢?循环依赖的两种方式同spring的依赖注入方式一样,setter方法和构造器方法。setter方式首先我们先用setter方式来表示这种循环依赖关系。两个bean:OrderService.java和UserService.java@Componentpublic class O

2020-12-20 23:52:15 289

原创 面试题-Spring IOC相关

Spring IOC的面试题,个人整理。1. 说说你对Spring中IOC及DI的理解?*2.从代码层面说说Spring的IOC容器本质到底是什么?***3.BeanFactory和ApplicationContext的关系和区别?****4.了解过FactoryBean么?说说你对它的理解?举一个相关的应用。***5.问题3,4如果答不出来,直接跳到这里。说说实现依赖注入有几种方式?或者说是Spring让你的Bean之间产生依赖的方式?*6.说说Spring框架中Bean的自动装配方式有几种?

2020-12-07 23:16:37 2549

原创 分享如何从Spring官网下载PDF文档

网址总站: http://docs.spring.io/spring-framework/docs/

2020-11-28 16:59:44 2233

原创 spring-framework之AnnotatedBeanDefinitionReader解析

AnnotatedBeanDefinitionReader的作用Spring源码中类的命名还是很讲究的,AnnotatedBeanDefinitionReader它的作用如同它本身的命名,主要是为了解析带有注解的bean的beanDefinition,并将其注册到Bean工厂中。在此类的注释中也有介绍,功能与ClassPathBeanDefinitionScanner类似,但是不同的是AnnotatedBeanDefinitionReader是必需要去指定某个class或class数组。下面来介绍此类的主

2020-10-27 00:35:16 1018

原创 XShell6提示更新且强制更新问题的解决办法

前几个月安装rabbitmq,用到了xshell。今天突然想安装redis,重新打开xshell,发现需要更新了。这软件真鸡贼!网上找解决办法,据说有三种,1,改系统时间。2,卸载重装。3,修改更新验证dll文件。第一种方案,最简单,但是不太友好,没尝试。第二种方案,我在本地试了,发现我win10,xshell6版本就然不好使,仍然提示更新,估计有些注册信息被放入了C盘,卸载不干净。第三种方案,没办法了,只有尝试第三种方案。修改nslicense.dll文件修改此文件,我临时下载了Sublim

2020-10-13 00:41:40 8679 23

原创 CentOS 7 完美安装redis-5.0.5

记录下自己安装redis过程,算是个笔记吧,以后会用到。准备条件因为我虚拟机环境没有联网,所以需要提前准备好redis包。一开始用的是redis 6+版本,安装后解压发现系统的gcc版本太低,无法编译。而没有联网,升级gcc版本太麻烦,之前系统装过rabbitmq,有4.8+版本的gcc,此版本适用于redis 5,于是就选择了redis-5.0.5的版本。提前将压缩包通过XFTP导入系统内。解压,编译首先解压redis包[root@zbh redis]# tar -zxvf redis-5.

2020-10-13 00:17:01 760

原创 Spring Boot - 02.编译Spring Boot源码

下载源码项目github上直接搜索springboot,点击tags找到合适的版本,本次编译选择的是spring-boot-2.2.8.RELEASE版本。点击zip下载即可。编译源码解压下载的zip包,然后进入到项目根目录,使用maven命令编译。mvn clean install -DskipTests -Pfast网上有用mvnw clean install -DskipTests -Pfast这个命令的,它会下载不同版本的maven,很墨迹,建议还是使用mvn命令。用本地版本maven

2020-08-24 21:43:50 1205

原创 Mybatis的执行流程和相关核心对象的介绍

从这篇博客开始,就会陆续记录我学习Mybatis源码的过程和心得。先喝一碗鸡汤壮壮胆,首先我觉得做一件事首先要清楚自己做这件事的目的。不然做这件事过程中会很容易放弃,做完之后也不会有太多收获。那么我学习Mybatis源码的目的就是了解并学习大神写代码的风格,让自己写出的代码看起来不那么幼稚。锻炼自己的心态,让自己不惧怕源码,平时的开发中如果任意框架的源码中报出异常,有能力通过其源码大致知道问题所在,锻炼自己主动找错和解决问题的能力,不总依赖百度和google。学习源码中用到的设计模式,平时接触的

2020-08-15 23:56:07 289

原创 Mybatis源码的下载,搭建以及阅读源码的姿势

源码下载mybatis的源码是在github上开源的,所以直接从github上搜索下载即可。如上图,第一个就是mybatis3的源码项目,下面几个也是项目中常用的依赖项目,分页插件pagehelper,SSM项目需要引入的依赖mybatis-spring,mybatis-plus项目等。当前最新版本是v3.5.5,可以选择合适的版本下载。我本地选择的是v3.5.4版本,小版本之间没有太大差异,点击zip包,下载即可。本地环境搭建此项目是maven项目,下载的zip包解压后,直接用自己的IDE打

2020-08-11 22:43:50 1774

原创 对Spring依赖注入的理解

依赖注入控制反转(IOC)是程序设计的一种思想,它解决了对象之间的耦合问题,使代码的扩展性更高,Spring也是通过这一种思想来管理Bean之间的依赖关系的。而要实现IOC这一思想,那么依赖注入(DI)就是其中一种有效的方式。这也就是IOC和DI之间的关系。Spring实现依赖注入的两种方法基于构造器实现的依赖注入@Componentpublic class StudentDao { private TeacherDao teacherDao; public StudentDao(Tea

2020-07-03 02:49:34 984 2

原创 CentOS mini 7下离线安装rabbitmq

公司的开发环境没有联网,想要从一台崭新的mini centos7安装rabbitmq。用于后续的开发,由于对linux一点不懂,被这个依赖包的问题折磨完了。不过最终还是找到一个办法。centos下一些命令需要的rpm包可以在此网站下载。http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/比如gcc,autoconf等命令。但是这种适合单独下载某个指定的rpm。但是无法处理关联的依赖问题。所以最简单的还是通过yum这种方式去下载到指定

2020-06-26 09:33:36 338

原创 经典排序算法之选择排序

来自《算法》中关于选择排序的描述:首先找到数组中最小的元素,将它和数组的第一个元素交换位置。其次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到整个数组排序。这就是选择排序。话不多说,上代码片段吧。public static void selectionSort(int[] arr) { // 外层循环,每次循环都要确定当前索引的最值元素 for (i...

2019-05-30 23:51:26 136

原创 Object类方法个人理解

Object类既然是Java类的根类,那就先瞅瞅它吧。大半夜的,困死我了。private static native void registerNatives(); static { registerNatives(); }上边的静态代码块,从名字看,调用注册本地方法,嗯,真香!我这英语还没有全就饭吃了。本地方法暂时不过多研究,只知道它的作用就是关联那些...

2019-05-10 02:09:57 145 1

空空如也

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

TA关注的人

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