自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 Spring Bean初始化流程之- invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory beanFactory)

invokeBeanFactoryPostProcessors主要负责的事情invokeBeanDefinitionRegistryPostProcessors() invokeBeanFactoryPostProcessors()可以看到bean工厂后置处理器BeanDefinitionRegistryPostProcessor的优先级高于BeanFactoryPostProcesso...

2019-12-15 16:17:37 358

原创 BeanFactoryPostProcess

BeanFactoryPostProcess及子类BeanDefinitionRegistryPostProcess1.BeanFactoryPostProcess是bean工厂后置处理器。目的是为了干预bean工厂(DefaultListableBeanFactory)的处理过程。在Spring扫描之后调用。一般由程序员提供@FunctionalInterfacepublic...

2019-12-09 22:28:06 388

原创 SpringBoot内嵌Web容器原理

SpringBoot 默认的web容器SpringBoot 自动配置类 ServletWebServerFactoryAutoConfiguration,使用@Improt导入三个容器的配置bean可以发现支持的容器是tomcat,jetty,undertow。默认使用的是tomcat。而且tomcat配置bean不需要手动加入相关start。其他两个需要手动加入相关start...

2019-12-08 22:51:44 911

原创 动态代理之jdk代理

java中加载一个类,需要把.java源文件编译成.class文件,然后在把.class文件通过类加载器,装载到JVM虚拟机中。大部分情况下,我们的类都是通过这种静态加载编译后的.class文件生成的。此时在项目工程下的target文件夹中,都会有相应的.class文件。但动态代理则不一样,java文件和.class文件都是不可见的。通过代理技术会生成我们需要的java文件,然后在编译成.cla...

2019-12-08 13:19:57 171

原创 Spring监听器

监听器用来监听某个事件的发生从而触发某个动作。比如,Web容器中ServletContext,HttpSession的创建,销毁。微服务中,服务的注册与发现。SpringBoot中requsetMapping方法映射记录....一个完整的Spring监听器使用,应该包含,事件对象,事件监听器,事件发布。Spring事件对象(ApplicationEvent)public ...

2019-12-07 21:33:44 182

原创 Spring容器装载bean的几种方式

如何把一个对象放到Spring容器,交由Spring管理?加@Component @Import(xx)导入(用于第三方的类) 定义一个FactoryBean(实现FactroyBean接口)(用于第三方的类) 调用BeanFactory的registerSingleton()注册一个对象(用于第三方的类)@Component@Componentpubli...

2019-12-04 21:54:14 840

原创 beanDefined介绍与bean的生命周期回调

BeanDefinedSpring IoC容器管理一个或多个bean。这些bean是由提供给容器的配置元数据创建的。在容器本身中,这些bean定义表示为BeanDefinition对象。一个beanDefined包含下面属性:Class Name Scope Constructor arguments Properties Autowiring mode Lazy ini...

2019-12-04 18:09:09 537

原创 Spring学习-bean注入方式与注入模型

bean注入方式构造函数注入 setter方法注入官网上面有解释bean注入模型no byType byName constructor官网上的介绍SpringIOC容器,负责实例化、配置和组装bean。它可以有两种方式进行配置和组装bean,每种方式,又可以分为以什么模型来完成。构造方法注入的方式,只能通过构造模型注入。setter方法注入的方式,可以通...

2019-12-02 21:02:28 885

原创 Spring源码分析之推断构造方法(一)

前面说过spring装配bean总体有两种模式,一种是手动装配,一种是自动装配(byName,byType,byContructor)。手动装配是一个bean引用到另外一个的bean情况下,这里我们通常是在xml或注解中手动加入的,但我敢肯定大多数都是用@Autowire注解指定注入bean。自动装配是不需要在代码中通过注解注入(需要set方法)或不需要在xml中配置property,sprin...

2019-11-11 14:38:03 1254

原创 NIO 学习之 手写简易聊天室

最近在学NIO,感觉目前对NIO的了解有了进一步的认识,不再像第一次接触它,面对,Buffer,Channel,Selector等新概念一头雾水。话不多少,开始记录下。下面的概念性的东西,我参考了一下别人的博客。(说的挺好)真正理解NIO简单说一下什么是NIOIO是面向缓冲区的。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动,这就增加了处理过程中的灵活性。Java ...

2019-11-02 15:13:22 253

原创 Docke学习02之创建镜像文件

Docker生成镜像的两种方式有时候从Docker镜像仓库中下载的镜像不能满足要求,我们可以基于基础镜像构建一个自己的镜像。具体有一下两种方式:更新镜像:使用Docker commit命令 构建镜像:使用Docker build命令。需要创建Dockerfile文件。 更新镜像 先使用基础镜像构建一个容器,然后对容器进行修改,再用Docker commit命令提交一个...

2019-10-20 10:41:01 325

原创 Docker学习01之安装docker

Docker是一个开源的应用容器,让开发者可以打包自己的应用以及依赖包到一个可移植的容器中。docker容器是完全使用沙箱机制,相互之间不会有任何接口。Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管 理。方便快捷已经是 Do...

2019-10-19 15:30:06 192

翻译 几道关于并发的面试题

多个atomic类连续调用是否构成原子性? 场景还原:在Demo2中我们定义一个AtomicInteger类,在test()方法中进行两次原子操作,第一次,判断get()是否小于1000,第二次进行自增。在主线程内创建三个线程,一次执行Demo2中的test()方法。代码还原:public class Demo2 { AtomicInteger count = new...

2019-10-13 14:34:07 241

原创 spring源码学习01之自动注入

第一次开始动手写博客,不知怎么写,就先从刚学习的简单知识开始记录吧。希望后面会继续坚持下去。喽喽喽~~这次博客标题是叫spring源码,但本文不会过多介绍源码知识,旨在于巩固下spring应用,源码的进一步探讨会在后续更新。此博客内容基于毁三观的spring自动注入自动装配模型概念细谈从spring官网上面可以看到spring只提出了4中自动装配模型no,byName,byTy...

2019-10-12 23:12:49 264

转载 Oracle学习之case when的用法

CASE WHEN 表达式有两种形式-简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2 CASE WHEN 在语句中不同位置的用法

2017-10-12 21:14:47 298

空空如也

空空如也

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

TA关注的人

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