学习
chuhx
这个作者很懒,什么都没留下…
展开
-
BeanFactory处理bean生命周期全流程
BeanFactory的默认实现为DefaultListableBeanFactory,其中Bean生命周期与方法映射如下,建议参考源码一起看。一、BeanDefinition注册阶段-registerBeanDefinition这个阶段分为两个部分:首先通过 beanName 注册 BeanDefinition ,然后再注册别名 alias。通过 beanName 注册处...原创 2020-03-24 08:33:50 · 505 阅读 · 0 评论 -
@Autowired注入过程,彻底搞清楚@Autowired
@Autowired注解我们实际工作和学习中,用的是比较频繁的。这篇文章主要是结合源码了解它的实际工作过程即是怎么把我们需要的类注入到我们类中的。@Autowired注入过程,实际上分为三个方面:1、元信息解析;2、依赖查找;3、依赖注入(字段、方法)。 元信息解析,在处理过程中,有一个类叫DependencyDescriptor,比如说我们的依赖描述器或者依赖描...原创 2020-03-15 15:55:50 · 12795 阅读 · 0 评论 -
SpringMVC+myBaties+druid+sharding,按照月份分表
项目需要分表分库,在网上找到了shardingsphere插件,接入过程还是蛮曲折的,今天终于有时间搞通了。sharding的介绍等会再说,还是直接上代码。一、引入jar包,我使用的v4.0.0版本 <!-- 集成sharding --> <dependency> <groupI...原创 2020-03-09 21:18:25 · 1448 阅读 · 2 评论 -
你知道Redis的字符串是怎么实现的吗?
本篇会讲以下内容: Redis字符串的实现 Redis字符串的性能优势 Redis字符串的实现Redis虽然是用C语言写的,但却没有直接用C语言的字符串,而是自己实现了一套字符串。目的就是为了提升速度,提升性能,可以看出Redis为了高性能也是煞费苦心。Redis构建了一个叫做简单动态字符串(Simple Dynamic String),简称SDS1.SDS 代码结...转载 2020-03-08 15:36:10 · 121 阅读 · 0 评论 -
(三)spring 的依赖注入,您了解多少?
接上篇文章(二)spring 的依赖注入,您了解多少?,继续聊下依赖注入的类型:setter方法注入、字段注入、方法注入和接口注入,我们逐一介绍各种注入类型。setter方法注入先说下它的使用场景,主要应用在多依赖和非强制依赖注入的情景下,使用场景正好跟构造函数注入互补。setter方法注入模式有自动注入(byName和byType)和手动注入模式(xml资源配置元信息、java注解元...原创 2020-03-08 15:02:51 · 145 阅读 · 0 评论 -
(二)spring 的依赖注入,您了解多少?
接上篇文章(上)spring 的依赖注入,您了解多少?,继续聊下依赖注入的类型:构造器注入、setter注入、字段注入、方法注入和接口注入,我们逐一介绍各种注入类型。构造器注入构造器注入方式也有自动注入和手动注入两种方式,先看下xml的手动注入方式,还是用(上)spring 的依赖注入,您了解多少?文章中的User和UserHodler类代码,在UsserHodler方法中声明了两个构造方...原创 2020-03-08 11:26:09 · 165 阅读 · 0 评论 -
(一)spring 的依赖注入,您了解多少?
之前整理过一篇文章:依赖查找和依赖注入的区别,这篇文章讲到依赖查找和依赖注入是IOC的实现手段。我们实际工作中用到比较多的是依赖注入,具体依赖注入的模式和类型你有了解多少?网上基本说有三种方式:构造器注入、setter注入、接口注入,或者再加上一种注解注入。本文详细介绍下注入的模式和类型。依赖注入的模式,依赖注入模式一般分为两类:手动注入和自动注入。手动模式即配置或者编程...原创 2020-03-08 10:22:15 · 239 阅读 · 1 评论 -
Dubbo面试八连问,这些你都能答上来吗?
Dubbo是什么? Dubbo能做什么? Dubbo内置了哪几种服务容器? Dubbo 核心的配置有哪些? Dubbo有哪几种集群容错方案,默认是哪种? Dubbo有哪几种负载均衡策略,默认是哪种? Dubbo默认使用的是什么通信框架,还有别的选择吗? 你觉得用Dubbo好还是SpringCloud好? 1.Dub...转载 2020-02-28 17:50:27 · 155 阅读 · 0 评论 -
什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?应对措施是什么
面试题了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?面试官心理分析其实这是问到缓存必问的,因为缓存雪崩和穿透,是缓存最大的两个问题,要么不出现,一旦出现就是致命性的问题,所以面试官一定会问你。面试题剖析缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4...转载 2020-02-28 17:49:07 · 239 阅读 · 0 评论 -
详细说说类加载流程,类加载机制及自定义类加载器
一、引言当程序使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、链接、初始化三个步骤对该类进行类加载。二、类的加载、链接、初始化1、加载类加载指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象。类的加载过程是由类加载器来完成,类加载器由JVM提供。我们开发人员也可以通过继承ClassLoader来实现自己的类加载器。1.1、加载的c...转载 2020-02-28 17:47:29 · 292 阅读 · 0 评论 -
线程池内部工作原理
随着cpu核数越来越多,不可避免的利用多线程技术以充分利用其计算能力。所以,多线程技术是服务端开发人员必须掌握的技术。线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就引入了线程池技术,避免频繁的线程创建和销毁。在Java中有一个Executors工具类,可以为我们创建一个线程池,其本质就是new了一个ThreadPoolExecutor对象。线程池几乎也是面试必考问题。本节结合...转载 2020-02-28 17:45:29 · 208 阅读 · 0 评论 -
ClassNotFoundException 和 NoClassDefFoundError 有什么区别
在写Java程序的时候,当一个类找不到的时候,JVM有时候会抛出ClassNotFoundException异常,而有时候又会抛出NoClassDefFoundError。看两个异常的字面意思,好像都是类找不到,但是JVM为什么要用两个异常去区分类找不到的情况呢?这个两个异常有什么不同的地方呢?ClassNotFoundExceptionClassNotFoundException是一个运...转载 2020-02-28 17:43:56 · 161 阅读 · 0 评论 -
谈一下数据库分库分表之后,你是如何解决事务问题?
一、概述随着时间和业务的发展,数据库中表的数据量会越来越大,相应地,数据操作,增删改查的开销也会越来越大。因此,把其中一些大表进行拆分到多个数据库中的多张表中。另一方面,在分库分表以后还需要保证分库分表的和主库的事务一致性。这片文章介绍一下:https://zhuanlan.zhihu.com/p/25933039本篇文章是基于非事务消息的异步确保的方式来完成分库分表中的事务问题。...转载 2020-02-28 17:42:21 · 1027 阅读 · 0 评论 -
说说你知道的关于BeanFactory和FactoryBean的区别
BeanFacotry是spring中比较原始的Factory。如XMLBeanFactory就是一种典型的BeanFactory。原始的BeanFactory无法支持spring的许多插件,如AOP功能、Web应用等。ApplicationContext接口,它由BeanFactory接口派生而来。ApplicationContext包含BeanFactory的所有功能,通常建议比BeanF...转载 2020-02-28 17:41:01 · 234 阅读 · 0 评论 -
依赖查找和依赖注入的区别
简单来说,依赖查找是主动和手动的依赖查找方式,通常需要依赖容器和标准api去实现;而依赖注入则是手动或自动依赖绑定的方式,无需依赖特定的容器和api。 一、依赖查找 依赖查找(Dependency Lookup,简称 DL),它是控制反转设计原则的一种实现方式。它的大体思路是:容器中的受控对象通过容器的 API 来查找自己所依赖的资源和协作对象。这...原创 2020-02-23 13:49:00 · 6924 阅读 · 2 评论 -
IOC与DI
1.控制反转实际上,控制反转是一个比较笼统的设计思想,并不是一种具体的实现方法,一般用来指导框架层面的设计。这里所说的“控制”指的是对程序执行流程的控制,而“反转”指的是在没有使用框架之前,程序员自己控制整个程序的执行。在使用框架之后,整个程序的执行流程通过框架来控制。流程的控制权从程序员“反转”给了框架。2.依赖注入依赖注入和控制反转恰恰相反,它是一种具体的编码技巧。我们不通过new...原创 2020-02-07 21:38:59 · 109 阅读 · 0 评论 -
java 集成支付宝支付
本周项目需要集成支付宝支付,第一次真正的接入,还是有一些曲折,所以就记录下来,供以后接入作为参考。一、入住支付宝开放平台,申请一个应用,现在申请的网页支付,如下图:需要签约 “快捷手机Wap支付”,由于该账户是测试,没有签约,可以拉起支付。二、设置账户私钥、公钥、支付宝公钥。建议下载官方工具生成(支付宝开放平台开发助手),但是安装路径千万不要空格。设置好后,会生...原创 2020-01-14 15:09:33 · 316 阅读 · 0 评论 -
ElasticSearch安装过程及遇到的问题
本文记录了es的安装流程,以及在安装过程中遇到问题及解决方法。我安装的版本是6.1.0。第一步:必须要有jre支持elasticsearch是用Java实现的,跑elasticsearch必须要有jre支持,所以必须先安装jre,本次安装版本需要java8及以上。第二步:下载elasticsearch进入官方下载https://www.elastic.co/downloads/ela...原创 2020-01-03 17:22:04 · 540 阅读 · 0 评论 -
shiro的多数据源和认证策略
shiro多数据源和认证策略原创 2017-07-21 17:35:26 · 2339 阅读 · 0 评论 -
Linux常用命令大全
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作系统信息 arch 显示机器的处理器架转载 2016-07-19 11:02:15 · 421 阅读 · 0 评论 -
几种基本的数字正则表达式[转]
只能输入1个数字 表达式 ^\d$ 描述 匹配一个数字 匹配的例子 0,1,2,3 不匹配的例子 只能输入n个数字 表达式 ^\d{n}$ 例如^\d{8}$ 描述 匹配8个数字 匹配的例子 12345678,22223334,12344321 不匹配的例子 只能输入至少n个数字 表转载 2016-06-29 10:29:28 · 722 阅读 · 0 评论 -
nginx的学习--反向代理与负载均衡
最经用到nginx做反向代理和负载均衡,之前一直用的apache,同事说nginx比apache速度更快、占用内存更少等优点。今天就试着配置,折腾了大半天,终于搞定了,但是seesion共享还没有搞定。部署了3个tomcat,分别在不同的服务器,用ngnix代理和负载,配置文件如下,主要是修改conf/nginx.conf文件:#user nobody;worker_processe原创 2016-05-18 16:21:21 · 558 阅读 · 0 评论 -
HTTPS那些事 用java实现HTTPS工作原理
今天被问到关于https原理的问题,结果由于知识掌握不牢靠,停留于表面,很多细节都无法回答清楚,于是决定把https的原理弄个明白,废话不多说,我们先看看https的定义 (由于很久未写博客,排版有些凌乱,请谅解)一:什么是https协议 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就转载 2016-05-24 14:52:09 · 1368 阅读 · 0 评论