Listener、Filter、Interceptor的区别?
摘要:写文章只是个人为了加强理解,留下点记录,方便后续查找复习。因能力有限,文中如有错误之处,还请留言指正,或者加个关注,互相学习,谢谢 一.Listener监听器(三者中相对简单的就是监听器,以spring事件监听为例讲解) 1.主题(被观察者)ApplicationContext,也即spring上下
阅读全文
spring中BeanFactory和FactoryBean的区别?
摘要:一.概念 BeanFactory,以Factory结尾,表示它是一个工厂类(接口), 负责生产和管理beanFactoryBean,以Bean结尾,表示它是一个bean(接口),被BeanFactory管理着那什么是bean?能被Spring容器实例化、组装、管理的对象都是bean,如 二.Fact
阅读全文
springMVC中的HandlerMapping
摘要:spring-webmvc版本5.2.5,springboot版本2.2.6 一.HandlerMapping是什么? HandlerMapping 可以理解成url和对应要执行代码段关系的集合,如RequestMappingHandlerMapping处理器映射,带有@RequestMapping
阅读全文
springboot怎样集成MVC?
摘要:一.springMVC中提供注解@EnableWebMvc @Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Import(DelegatingWebMvcConfiguration.class)//注解主
阅读全文
springMVC中的HandlerExceptionResolver,404是怎么报出来的?
摘要:spring-webmvc版本5.2.5,springboot版本2.2.6 一.HandlerExceptionResolver是什么? HandlerExceptionResolver处理异常的工具类,简单来说,传过来一个异常,如果有能力处理,直接返回处理后的结果;不能处理,返回null 二.H
阅读全文
springMVC中的HandlerAdapter
摘要:spring-webmvc版本5.2.5,springboot版本2.2.6 一.HandlerAdapter是什么? HandlerAdapter处理器适配,因为handlerMapping有好几种类型,有方法级别、有controller级别的、有静态资源,具体执行方式不统一,提供适配器包一层,让
阅读全文
spring ioc容器扩展点
摘要:1.BeanDefinitionRegistryPostProcessor() 作用和特点 继承了BeanFactoryPostProcessor接口 postProcessBeanDefinitionRegistry方法可以修改在BeanDefinitionRegistry接口实现类中注册的任意B
阅读全文
从servlet到DispatcherServlet
摘要:一.什么是Servlet?之前已经介绍过,Servlet就是java语言用来处理网络请求的一套规范;其实从包名javax.servlet.Servlet也可以看出来,它是java扩展内容二.重要组成1.javax.servlet包,定义规范顶级接口和抽象父类,ServletRequest、Servl
阅读全文
spring中的@import/@ImportResource注解
摘要:一.作用:往容器中注入BeanDefinition对象,@Import直接一点,@ImportResource通过配置文件绕了一层(即读取文件,解析里面配置属性,封装BeanDefinition对象) 1.@Import导入类,@ImportResource导入xml配置文件;导入类能做的事情,导入
阅读全文
get请求加随机数目的是什么?DispatcherServlet中的几个细节
摘要:本节聊一下DispatcherServlet工作流程中的细节问题 1.attributesSnapshot参数快照 在doService()方法开始,取出request请求中的参数,最后finally中恢复request参数;理论上最后关心response就可以了,为什么还要操作request?其实
阅读全文
spring中的@Conditional注解
摘要:一.@Conditional条件注解概述 1.作用于方法和类上面,value是实现Condition接口类型,一个判断是否匹配的方法,返回true/false,例如 如果是Windows系统,且@Conditional注解宿主上有@Controller注解时,返回true,对应controller类
阅读全文
spring中的@Autowired注解
摘要:先看个最常用的示例代码,介绍完整流程 @Autowired简单例子 一.spring容器实例化的时候,如web容器AnnotationConfigServletWebServerApplicationContext构造方法中,new一个新对象AnnotatedBeanDefinitionReader
阅读全文
spring中的@Configuration注解
摘要:@Configuration是用来替换xml的注解,功能等同于xml配置文件,@Bean标注的方法等同于xml文件里的一个<bean/>标签 1.xml可以配置多个,同样@Configuration也可以配置多个,application.xml相当于主配置类(启动就加载进容器的配置类),如DemoA
阅读全文
spring中资源配置体系
摘要:springboot版本2.2.6 一.项目或多或少都需要一些初始化基础配置,使用配置,我们不得不考虑以下问题:什么格式、存储在哪、怎么解析、怎么加载进容器、怎么无状态灵活切换?spring是怎么做的,完整流程是怎样的? 二、资源配置流程 1.prepareEnvironment准备环境阶段,创建S
阅读全文
分布式配置中心apollo-分析1
摘要:springboot版本2.2.6,apollo版本1.6.1 一.基本概念 1.分布式:简单来说,将一台机器上的服务,分散部署在不同的机器上的,各个机器之前相互协同(一个机器可能负责N个功能)。分布式是系统部署方式,微服务是指架构设计方式,两者不是一个层面上的概念 2.apollo:能够集中化管理
阅读全文
spring中参数占位符原理
摘要:一.理论基础 1.xml中直接使用"${aa}"注入属性值的原理,BeanFactory后置处理器:在容器中的bean对象实例化之前,对容器中的beanDefinition对象做特定修改;例如:将一个beanDefinition对象的某个String类型的属性a初始值从"11"修改为"1111",s
阅读全文
分布式配置中心apollo-分析3
摘要:springboot版本2.2.6,apollo版本1.6.1 接上一章,本章主要是SpringValueDefinitionProcessor、SpringValueProcessor、ApolloAnnotationProcessor、ApolloJsonValueProcessor 一.Spr
阅读全文
分布式配置中心apollo-分析2
摘要:springboot版本2.2.6,apollo版本1.6.1 接上一章,这章主要是PropertySourcesProcessor类,BeanFactory后置处理器 一.initializePropertySources(),初始化远程apollo配置 1.取注解@EnableApolloCon
阅读全文
分布式配置中心apollo-分析4
摘要:前面几章,介绍了apollo客户端,这章开始介绍apollo服务端的meta server和apollo-config,apollo版本1.6.1 一.Meta Server 客户端首先请求Meta Server,查询可用的Cofig Service 1.前面在讲使用apollo项目启动的时候,要配
阅读全文
分布式配置中心apollo-分析6
摘要:接上一章,本章主要对之前内容总结,apollo版本1.6.1 一.apoll核心组件 总体设计 二.代码实现细节 1.监听器 2.线程池 3.http长连接 4.spring异步请求 5.spi,apollo源码中大量使用api的方式,利于扩展。面向接口编程,具体的实现类通过spi的方式反射出来,多
阅读全文