大纲部分:可参考
一、依赖注入的三种方式:(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 框架的源代码。 部分内容解释 1. 下载 GitHub 客户端安装 下载 GitHub 客户端是因为 Spring 源码托管在 GitHub 上,所以我们需要下载 GitHub 客户端来 clone Spring 源码。安装成功后,...
SpringCloud是当前微服务架构下非常流行的一个框架,它是基于SpringBoot的,用于快速构建分布式系统中的一些常见模式...这些知识点在面试中也经常被提及,因此对于准备面试的开发者来说,熟悉这些内容是非常有帮助的。
下面是具体的步骤和知识点总结。 一、下载 Spring 源码 下载 Spring 源码有两种方式:一种是直接下载 zip 文件,另一种是使用 Git 克隆(git clone)源码地址:...
在Spring源码中,容器的加载方式、XML属性配置的解析过程以及自定义标签的处理是核心知识点。 1. **Spring容器加载方式**: - **ClassPathXmlApplicationContext**: 通过类路径加载XML配置文件,适用于传统的Java...
### Spring基本知识点教程+案例演示 #### Spring框架简介 Spring框架是为了解决企业级应用开发的复杂性而诞生的一款轻量级Java平台框架。它最初由Rod Johnson创建,后来发展成为Spring源代码项目,该项目由Pivotal...
以下是对Spring基础知识的详细讲解: 1. **依赖注入(Dependency Injection, DI)** 依赖注入是Spring的核心特性,它允许组件之间松耦合。通过容器管理对象的创建和对象之间的依赖关系,而不是在代码中硬编码依赖。...
### SpringCloud配置、教程、源代码项目举例说明加注释概要性知识点 #### 一、Spring Cloud 简介 Spring Cloud 是一套基于 Spring Boot 实现的微服务开发工具包,它为开发者提供了在分布式系统(如配置管理、服务...
标题中的"开发Spring MVC应用程序补充—程序源码下载.rar_spring_spring mvc_spring mvc 源码_sp"表明这是一个关于Spring MVC框架的开发教程,其中包含了源代码供学习者参考。Spring MVC是Spring框架的一个核心组件...
《Spring源码分析——BeanFactory》 在Java的IoC(Inversion of Control)和DI(Dependency Injection)领域,Spring框架扮演着至关重要的角色。BeanFactory是Spring的核心组件之一,它是容器的基石,负责管理应用...
- **AOP**:提供面向切面的编程,允许在不修改源代码的情况下添加新的功能或行为,如日志记录、事务管理等。 2. **Spring MVC**:Spring提供的用于构建Web应用的模块,支持RESTful风格的请求处理,包含...
本文将详细探讨Spring与ActiveMQ的整合过程,以及相关的知识点。 1. **Spring框架**:Spring是Java开发中的一个全功能框架,提供依赖注入(Dependency Injection)、面向切面编程(AOP)、事务管理等核心功能,广泛...
这里我们将深入探讨Spring 4.0.2的核心知识点。 1. **模块化设计**: Spring 4.0引入了更清晰的模块划分,使得开发者可以按需选择所需组件,降低应用的体积和启动时间。主要模块包括Core Container(核心容器)、...
根据给定文件的信息,我们可以提炼出以下几个重要的知识点: ### 一、SpringCloud简介与核心组件 #### 1.1 SpringCloud概述 SpringCloud是一套基于Spring Boot实现的微服务云应用开发工具集,它提供了在分布式系统...
### Spring源码底层分析知识点详解 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,用于构建企业级应用程序和服务。它通过提供强大的依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-...
源码解析Spring 数据库异常抽理知识点总结 在这篇文章中,我们将讨论源码解析Spring 数据库异常抽理知识点,并总结相关知识点内容。 Spring 数据库异常抽理 在处理数据库异常时,我们需要了解SQLException的两个...
下面是对 Spring Framework 的详细知识点总结: 1. 什么是 Spring? Spring 是一个基于 Java 的开源框架,提供了一个通用的编程模型和配置机制,帮助开发者快速构建企业级应用程序。Spring 的主要特点是轻量级、...
下面将详细介绍Spring框架的核心组件、主要功能以及SSH(Spring、Struts、Hibernate)和SSM(Spring、SpringMVC、MyBatis)整合的相关知识点。 1. **Spring核心模块**: - **IoC(Inversion of Control)容器**:...
### SpringRoo-ReferenceDocumentation 1.2.5.RELEASE 关键知识点解析 ...以上是对SpringRoo-ReferenceDocumentation 1.2.5.RELEASE的关键知识点总结,希望能帮助读者更好地理解和使用SpringRoo。
在Spring Boot应用中,@PropertySource注解是一个关键的组件,它允许我们从外部源加载属性值,使得我们的配置更加灵活和可维护。这个注解主要用于Spring框架,但与Spring Boot的集成使得它在现代Java应用程序中的...