java
文章平均质量分 58
chuhx
这个作者很懒,什么都没留下…
展开
-
BeanFactory处理bean生命周期全流程
BeanFactory的默认实现为DefaultListableBeanFactory,其中Bean生命周期与方法映射如下,建议参考源码一起看。一、BeanDefinition注册阶段-registerBeanDefinition这个阶段分为两个部分:首先通过 beanName 注册 BeanDefinition ,然后再注册别名 alias。通过 beanName 注册处...原创 2020-03-24 08:33:50 · 549 阅读 · 0 评论 -
@Autowired注入过程,彻底搞清楚@Autowired
@Autowired注解我们实际工作和学习中,用的是比较频繁的。这篇文章主要是结合源码了解它的实际工作过程即是怎么把我们需要的类注入到我们类中的。@Autowired注入过程,实际上分为三个方面:1、元信息解析;2、依赖查找;3、依赖注入(字段、方法)。 元信息解析,在处理过程中,有一个类叫DependencyDescriptor,比如说我们的依赖描述器或者依赖描...原创 2020-03-15 15:55:50 · 13387 阅读 · 0 评论 -
Idea 中最常用的10款插件(提高开发效率),一定要学会使用!
学习使用一些插件,可以提高平常工作中的开发效率。对于我们开发人员很有帮助!相关文章:史上最全的IDEA快捷键总结,提高开发效率Eclipse 最牛逼的 10 组快捷键,提高开发效率史上最牛逼的 VSCode 插件,提高开发效率!插件安装IDEA里面,依次选择打开 File --> Settings --> Plugins,在Plugins里面可以搜索需要的插件,...转载 2020-03-13 09:22:07 · 459 阅读 · 0 评论 -
(三)spring 的依赖注入,您了解多少?
接上篇文章(二)spring 的依赖注入,您了解多少?,继续聊下依赖注入的类型:setter方法注入、字段注入、方法注入和接口注入,我们逐一介绍各种注入类型。setter方法注入先说下它的使用场景,主要应用在多依赖和非强制依赖注入的情景下,使用场景正好跟构造函数注入互补。setter方法注入模式有自动注入(byName和byType)和手动注入模式(xml资源配置元信息、java注解元...原创 2020-03-08 15:02:51 · 162 阅读 · 0 评论 -
(二)spring 的依赖注入,您了解多少?
接上篇文章(上)spring 的依赖注入,您了解多少?,继续聊下依赖注入的类型:构造器注入、setter注入、字段注入、方法注入和接口注入,我们逐一介绍各种注入类型。构造器注入构造器注入方式也有自动注入和手动注入两种方式,先看下xml的手动注入方式,还是用(上)spring 的依赖注入,您了解多少?文章中的User和UserHodler类代码,在UsserHodler方法中声明了两个构造方...原创 2020-03-08 11:26:09 · 184 阅读 · 0 评论 -
(一)spring 的依赖注入,您了解多少?
之前整理过一篇文章:依赖查找和依赖注入的区别,这篇文章讲到依赖查找和依赖注入是IOC的实现手段。我们实际工作中用到比较多的是依赖注入,具体依赖注入的模式和类型你有了解多少?网上基本说有三种方式:构造器注入、setter注入、接口注入,或者再加上一种注解注入。本文详细介绍下注入的模式和类型。依赖注入的模式,依赖注入模式一般分为两类:手动注入和自动注入。手动模式即配置或者编程...原创 2020-03-08 10:22:15 · 257 阅读 · 1 评论 -
详细说说类加载流程,类加载机制及自定义类加载器
一、引言当程序使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、链接、初始化三个步骤对该类进行类加载。二、类的加载、链接、初始化1、加载类加载指的是将类的class文件读入内存,并为之创建一个java.lang.Class对象。类的加载过程是由类加载器来完成,类加载器由JVM提供。我们开发人员也可以通过继承ClassLoader来实现自己的类加载器。1.1、加载的c...转载 2020-02-28 17:47:29 · 314 阅读 · 0 评论 -
线程池内部工作原理
随着cpu核数越来越多,不可避免的利用多线程技术以充分利用其计算能力。所以,多线程技术是服务端开发人员必须掌握的技术。线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就引入了线程池技术,避免频繁的线程创建和销毁。在Java中有一个Executors工具类,可以为我们创建一个线程池,其本质就是new了一个ThreadPoolExecutor对象。线程池几乎也是面试必考问题。本节结合...转载 2020-02-28 17:45:29 · 220 阅读 · 0 评论 -
ClassNotFoundException 和 NoClassDefFoundError 有什么区别
在写Java程序的时候,当一个类找不到的时候,JVM有时候会抛出ClassNotFoundException异常,而有时候又会抛出NoClassDefFoundError。看两个异常的字面意思,好像都是类找不到,但是JVM为什么要用两个异常去区分类找不到的情况呢?这个两个异常有什么不同的地方呢?ClassNotFoundExceptionClassNotFoundException是一个运...转载 2020-02-28 17:43:56 · 179 阅读 · 0 评论 -
说说你知道的关于BeanFactory和FactoryBean的区别
BeanFacotry是spring中比较原始的Factory。如XMLBeanFactory就是一种典型的BeanFactory。原始的BeanFactory无法支持spring的许多插件,如AOP功能、Web应用等。ApplicationContext接口,它由BeanFactory接口派生而来。ApplicationContext包含BeanFactory的所有功能,通常建议比BeanF...转载 2020-02-28 17:41:01 · 252 阅读 · 0 评论 -
依赖查找和依赖注入的区别
简单来说,依赖查找是主动和手动的依赖查找方式,通常需要依赖容器和标准api去实现;而依赖注入则是手动或自动依赖绑定的方式,无需依赖特定的容器和api。 一、依赖查找 依赖查找(Dependency Lookup,简称 DL),它是控制反转设计原则的一种实现方式。它的大体思路是:容器中的受控对象通过容器的 API 来查找自己所依赖的资源和协作对象。这...原创 2020-02-23 13:49:00 · 7087 阅读 · 2 评论 -
jvm内存溢出问题详解
你好,欢迎阅读本文,希望对你有帮助 昨天(20200219)线上某系统访问异常,出现卡的现象,并且一天出现了两次。第一次排查到调用三方服务响应异常,通知三方服务负责人员排查问题。我对本系统的处理就是重启了一下,观察半小时系统一切正常,就去忙其他的了。可是……过了4个小时左右又出现卡顿,系统打不开的情况。再次打开日志,第一眼看到的还是调用三方服务超时,并且还是调用多个都超...原创 2020-02-20 13:38:12 · 405 阅读 · 0 评论 -
IOC与DI
1.控制反转实际上,控制反转是一个比较笼统的设计思想,并不是一种具体的实现方法,一般用来指导框架层面的设计。这里所说的“控制”指的是对程序执行流程的控制,而“反转”指的是在没有使用框架之前,程序员自己控制整个程序的执行。在使用框架之后,整个程序的执行流程通过框架来控制。流程的控制权从程序员“反转”给了框架。2.依赖注入依赖注入和控制反转恰恰相反,它是一种具体的编码技巧。我们不通过new...原创 2020-02-07 21:38:59 · 119 阅读 · 0 评论 -
java 集成支付宝支付
本周项目需要集成支付宝支付,第一次真正的接入,还是有一些曲折,所以就记录下来,供以后接入作为参考。一、入住支付宝开放平台,申请一个应用,现在申请的网页支付,如下图:需要签约 “快捷手机Wap支付”,由于该账户是测试,没有签约,可以拉起支付。二、设置账户私钥、公钥、支付宝公钥。建议下载官方工具生成(支付宝开放平台开发助手),但是安装路径千万不要空格。设置好后,会生...原创 2020-01-14 15:09:33 · 348 阅读 · 0 评论 -
spring boot启动jar包循环依赖的问题
早晨来了合并代码,启动发现报错,如下信息。原来是两个bean循环依赖了。org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'testController': Unsatisfied dependency expressed through field '...原创 2020-01-13 10:42:36 · 2326 阅读 · 0 评论 -
APM(应用性能管理)与Dapper原理介绍
一、APM(应用性能管理)1.1 什么是APM?APM (Application Performance Management) 即应用性能管理(应用性能监控)APM主要是针对企业 关键业务的IT应用性能和用户体验的监测、优化,提高企业IT应用的可靠性和质量。旨在确保最终用户获得高质量的体验,降低IT总拥有成本(TCO)TCO (Total Cost of Ownership ),即...转载 2020-01-12 15:21:53 · 842 阅读 · 0 评论 -
jvm 内存泄漏排查过程
最近两周发现定时任务系统占用内存一直增高,之前占用1.5G左右,现在内存是一直增高,并且无止境的趋势,由于本系统和其他系统部署在一台服务器,服务器设置了内存超过85%就会报警,导致经常报警。于是肯定是程序存在内存泄漏了,于是就开启了排查。一、通过VisualVM查看内存占用情况,发现某个实体类对象大量存在,如下图:于是就找引用这个类的相关代码,最初发现循环里面检索列表对...原创 2020-01-11 17:17:04 · 8862 阅读 · 2 评论 -
Mybatis批量插入大数据导致堆内存溢出问题解决方案
Mybatis批量插入内存溢出JVM环境:-Xms64m -Xmx128m由于①mybatis的DAO接口我是传List,而mybatis的foreach底层代码是arrays的,②所以需要把List转arrays,然后遍历Arrays,③用StringBuilder拼接SQL的。问题出现在②③步!因生成的arrays对象和StringBuilder对象是在堆内存中的,而堆内存的对...转载 2020-01-07 13:49:54 · 2235 阅读 · 0 评论 -
@Scheduled执行原理解析
本文主要介绍Spring中使用定时任务的方式和执行原理,先了解下定时任务的执行方式1、@Scheduled使用方式定时任务注解为@Scheduled。使用方式举例如下://定义一个按时间执行的定时任务,在每天16:00执行一次。@Scheduled(cron = “0 0 16 * * ?”)public void depositJob() {//TODO}//定义一个按一定频率执...原创 2020-01-03 17:17:38 · 3168 阅读 · 0 评论 -
Java图片上传压缩处理
我们在项目中经常会出现图片的上传、压缩处理的情况,例如等比例压缩、按照一定的宽度和高度压缩等转载 2016-04-07 11:26:34 · 1412 阅读 · 0 评论