`

spring源码各个知识点汇总

 
阅读更多

大纲部分:可参考

一、依赖注入的三种方式:(1)接口注入(2)Construct注入(3)Setter注入

AbstractAutowireCapableBeanFactory进行构造和管理bean,其中,如果没有使用工厂或默认构造方法constructor-arg进行实例化,则默认使用cglib,而不是反射机制实例化bean。可参考,实例化后,开始装配bean(即赋值对象变量,或注解或xml配置成员变量参数),将注解或配置变量装配传递进去,其实实际的装配操作是通过AutowiredAnnotationBeanPostProcessor完成的(所有BeanPostProcessor实现类在bean实例化前后都会被调用对应方法)。

二、

请求拦截:过滤器(Filter,回调机制,职责链模式。拦截来自浏览器的请求)

AOP部分:分为两种,Spring AOP(动态代理模式,反射,由spring实现的一个aop,常通过注解或配置实现,可针对任意的方法并可反射获取该方法参数)和拦截器类(通过继承HandlerInterceptorAdapter实现。更精确拦截,请求前后做操作,获取request和response参数和返回的ModelAndView等)。

1、BeanFactoryPostProcessor和BeanPostProcessor的区别:Spring初始化bean的扩展点,在spring实例化任何bean之前读取元数据。可参考,PropertyResourceConfigurer 是BeanFactoryPostProcessor的一个实现类,来读取配置文件,提供构造参数中{name}这种实现。

2、了解Advice(通知)、Joinpoint(连接点)、Pointcut(切点)、Advisor(通知器)的概念。可参考

         a、Advice(通知),定义具体要做什么,如上面所说的日志记录、安全控制。有时也称为“增强”,对目标方法进行功能增强。

         b、Joinpoint(连接点),定义通知执行的代码位置,如在哪个方法执行。

         c、Pointcut(切点),定义通知在哪些连接点上执行,即定义连接点的一个集合,通常配置一个正则表达式匹配一系列方法集合。

         d、Advisor(通知器),将通知和切点关联起来,定义了哪个通知用于哪个切点。

3、AdvisedSupport存放包装了目标对象的TargetSource和其所有的Advisor,所以在JdkDynamicAopProxy获取代理对象并执行时,会去找对应的所有Advisor(有待验证这句话)。可参考文章可参考可参考2

 

三、监听事件 ApplicationListener 和 ApplicationEvent:

在ApplicationContext调用refresh()初始化时,会初始化listeners并放到集合中,当通过ApplicationContext.publishEvent(event);时,就会遍历所有listeners执行。其实就是用来观察者模式。

下面两个监听器也很好用,直接在web.xml配置就可以了:

如果你想让你的类监听应用的启动和停止事件,你就得实现ServletContextListener接口;

如果你想让你的类去监听Session的创建和失效事件,那你就得实现HttpSessionListener接口。

 

四、注解:

1)@Controller只是标记,真正@RequestMapping才是映射URL到对应的处理器。

2)@RequestParam绑定Request中的参数值到控制处理器的方法参数中。支持参数有HttpServlet类的,@ModelAttribute,spring的modeMap,MultipartFile上传文件,实体类等。而返回支持ModelAndView ,View 对象,String,void(已通过response返回),

3)@Autowired 可参考

4)@responsebody表示该方法的返回结果直接写入HTTP response body中

一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

5)@Configuration和@Bean的使用,直接用代码来代替xml配置文件。spring扫描到该注解,会将对应的bean放到容器中。

 

 

 1、介绍Spring的IOC和AOP,分别是如何实现的(反射机制和动态代理) 

2、Redis如何处理分布式服务器并发造成的不一致,如果数据库不提供隔离呢? 

3、解释MySQL索引、b树,为啥不用平衡二叉树或红黑树(磁盘与内存的存储方式不同) 

4、Spring的bean加载机制,bean生成的具体步骤 

5、IOC的注入方式(set注入、构造方法注入) 

6、Spring何时创建applicationContext(web.xml中使用listener) 

7、listener是监听哪个事件 

8、SpringMVC的具体流程 

9、Spring的特性,SpringMVC中控制器的名字及其配置 

10、Spring用到哪些设计模式? 

DispatcherServlet中HandlerAdapter适配器模式,

11、controller怎么处理的请求

分享到:
评论

相关推荐

    spring 源码环境搭建

    "spring源码" 是指 Spring 框架的源代码。 部分内容解释 1. 下载 GitHub 客户端安装 下载 GitHub 客户端是因为 Spring 源码托管在 GitHub 上,所以我们需要下载 GitHub 客户端来 clone Spring 源码。安装成功后,...

    SpringCloud知识点暨面试题总结(2).pdf

    SpringCloud是当前微服务架构下非常流行的一个框架,它是基于SpringBoot的,用于快速构建分布式系统中的一些常见模式...这些知识点在面试中也经常被提及,因此对于准备面试的开发者来说,熟悉这些内容是非常有帮助的。

    idea+gradle构建spring源码环境.docx

    下面是具体的步骤和知识点总结。 一、下载 Spring 源码 下载 Spring 源码有两种方式:一种是直接下载 zip 文件,另一种是使用 Git 克隆(git clone)源码地址:...

    Spring源码总结.pdf

    在Spring源码中,容器的加载方式、XML属性配置的解析过程以及自定义标签的处理是核心知识点。 1. **Spring容器加载方式**: - **ClassPathXmlApplicationContext**: 通过类路径加载XML配置文件,适用于传统的Java...

    Spring基本知识点教程+案例演示

    ### Spring基本知识点教程+案例演示 #### Spring框架简介 Spring框架是为了解决企业级应用开发的复杂性而诞生的一款轻量级Java平台框架。它最初由Rod Johnson创建,后来发展成为Spring源代码项目,该项目由Pivotal...

    Spring基础知识汇总Java开发必看

    以下是对Spring基础知识的详细讲解: 1. **依赖注入(Dependency Injection, DI)** 依赖注入是Spring的核心特性,它允许组件之间松耦合。通过容器管理对象的创建和对象之间的依赖关系,而不是在代码中硬编码依赖。...

    SpringCloud配置、教程、源代码项目举例说明加注释概要性知识点.docx

    ### SpringCloud配置、教程、源代码项目举例说明加注释概要性知识点 #### 一、Spring Cloud 简介 Spring Cloud 是一套基于 Spring Boot 实现的微服务开发工具包,它为开发者提供了在分布式系统(如配置管理、服务...

    开发Spring MVC应用程序补充—程序源码下载.rar_spring_spring mvc_spring mvc 源码_sp

    标题中的"开发Spring MVC应用程序补充—程序源码下载.rar_spring_spring mvc_spring mvc 源码_sp"表明这是一个关于Spring MVC框架的开发教程,其中包含了源代码供学习者参考。Spring MVC是Spring框架的一个核心组件...

    二、Spring源码分析——BeanFactory

    《Spring源码分析——BeanFactory》 在Java的IoC(Inversion of Control)和DI(Dependency Injection)领域,Spring框架扮演着至关重要的角色。BeanFactory是Spring的核心组件之一,它是容器的基石,负责管理应用...

    spring知识总结.zip

    - **AOP**:提供面向切面的编程,允许在不修改源代码的情况下添加新的功能或行为,如日志记录、事务管理等。 2. **Spring MVC**:Spring提供的用于构建Web应用的模块,支持RESTful风格的请求处理,包含...

    spring整合Activemq源码

    本文将详细探讨Spring与ActiveMQ的整合过程,以及相关的知识点。 1. **Spring框架**:Spring是Java开发中的一个全功能框架,提供依赖注入(Dependency Injection)、面向切面编程(AOP)、事务管理等核心功能,广泛...

    spring 4.0.2 jar包(不含源码)

    这里我们将深入探讨Spring 4.0.2的核心知识点。 1. **模块化设计**: Spring 4.0引入了更清晰的模块划分,使得开发者可以按需选择所需组件,降低应用的体积和启动时间。主要模块包括Core Container(核心容器)、...

    尚硅谷SpringCloud视频 + 源码 百度网盘

    根据给定文件的信息,我们可以提炼出以下几个重要的知识点: ### 一、SpringCloud简介与核心组件 #### 1.1 SpringCloud概述 SpringCloud是一套基于Spring Boot实现的微服务云应用开发工具集,它提供了在分布式系统...

    spring源码底层分析视频教程

    ### Spring源码底层分析知识点详解 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,用于构建企业级应用程序和服务。它通过提供强大的依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-...

    源码解析Spring 数据库异常抽理知识点总结

    源码解析Spring 数据库异常抽理知识点总结 在这篇文章中,我们将讨论源码解析Spring 数据库异常抽理知识点,并总结相关知识点内容。 Spring 数据库异常抽理 在处理数据库异常时,我们需要了解SQLException的两个...

    spring的所有jar包和源码包

    下面将详细介绍Spring框架的核心组件、主要功能以及SSH(Spring、Struts、Hibernate)和SSM(Spring、SpringMVC、MyBatis)整合的相关知识点。 1. **Spring核心模块**: - **IoC(Inversion of Control)容器**:...

    spring_in_action-sixth-edition.pdf

    下面是对 Spring Framework 的详细知识点总结: 1. 什么是 Spring? Spring 是一个基于 Java 的开源框架,提供了一个通用的编程模型和配置机制,帮助开发者快速构建企业级应用程序。Spring 的主要特点是轻量级、...

    spring-roo-docs

    ### SpringRoo-ReferenceDocumentation 1.2.5.RELEASE 关键知识点解析 ...以上是对SpringRoo-ReferenceDocumentation 1.2.5.RELEASE的关键知识点总结,希望能帮助读者更好地理解和使用SpringRoo。

    Spring Boot 技术知识点:如何理解@PropertySource注解

    在Spring Boot应用中,@PropertySource注解是一个关键的组件,它允许我们从外部源加载属性值,使得我们的配置更加灵活和可维护。这个注解主要用于Spring框架,但与Spring Boot的集成使得它在现代Java应用程序中的...

Global site tag (gtag.js) - Google Analytics