spring自动扫描1.自动扫描解析器ComponentScanBeanDefinitionParser,从doScan开始扫描解析指定包路径下的类注解信息并注册到工厂容器中. 2.进入后findCandidateComponents方法里面会扫描加载basePackage包路径下的所有.class的资源文件,找出符合的类(带有@Component类型注解的类)生成类定义信息.注:@Controller.@Repository.@Service属于@Component,如不解查看源码便知 Dis…
前言 最近打算花点时间好好看看spring的源码,然而现在Spring的源码经过迭代的版本太多了,比较庞大,看起来比较累,所以准备从最初的版本(interface21)开始入手,仅用于学习,理解其设计思想,后续慢慢研究其每次版本变更的内容... 先从interface21的一个典型web工程例子看起,宠物诊所 - petclinic,因为该工程基本涵盖了Spring的APO.IOC.JDBC.Web MVC.事务.国际化.主题切换.参数校验等主要功能... 继上一篇,了解完ContextLoad…
整个spring mvc的架构如下图所示: 现在来讲解DispatcherServletDispatcherServlet的第一步:获取控制器. HandlerMapping HandlerMappings 定义request和handler之间的映射.它的官方文档这样描述: Interface HandlerMapping All Known Implementing Classes: AbstractControllerUrlHandlerMapping, AbstractDetecting…
一.创建BeanFactory流程 1.流程入口 创建BeanFactory的流程是从refresh方法的第二步开始的,通过调用obtainFreshBeanFactory方法完成流程. ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory(); 2.流程分析 创建BeanFactory的流程是从第二步开始的,调用AbstractApplicationContext类中的obtainFreshBeanFactor…
可以通过以下三种方式加载spring容器,实现bean的扫描与管理: 1. ClassPathXmlApplicationContext:从类路径中加载 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-context.xml"); context.start(); 2. FileSystemXmlApplicationContext: 从文件系统加…
整个spring mvc的架构如下图所示: 现在来讲解DispatcherServletDispatcherServlet的最后一步:视图渲染.视图渲染的过程是在获取到ModelAndView后的过程. 视图渲染的过程: DispatcherServlet.java doService()--->doDispatch()--->processDispatchResult()--->render() processDispatchResult():主要处理异常.请求状态及触发请求完成事件,…
整个spring mvc的架构如下图所示: 上篇文件讲解了DispatcherServlet通过request获取控制器Controller的过程,现在来讲解DispatcherServletDispatcherServlet的第二步:通过request从Controller获取ModelAndView. DispatcherServlet调用Controller的过程: DispatcherServlet.java doService()--->doDispatch()--->handler…
很多公司都会用Spring MVC,而且初级程序员在面试时,一定会被问到这方面的问题,所以这里我们来通过一个简单的案例来分析Spring MVC,事实上,我们在培训中就用这个举例,很多零基础的程序员能很快用这个上手. 本文的文字和案例根据java web轻量级开发面试教程改编. 1 Spring MVC代码的讲解 步骤一,创建Web项目,编写web.xml,在其中指定使用Spring的MVC,主要的代码如下. 1 <servlet> 2 <servlet-name>spring&l…
在Spring基础 - Spring简单例子引入Spring的核心中向你展示了IoC的基础含义,同时以此发散了一些IoC相关知识点; 本节将在此基础上进一步解读IOC的含义以及IOC的使用方式.@pdai Spring框架系列(3) - Spring核心之控制反转(IOC) 引入 如何理解IoC Spring Bean是什么 IoC是什么 IoC能做什么 IoC和DI是什么关系 Ioc 配置的三种方式 xml 配置 Java 配置 注解配置 依赖注入的三种方式 setter方式 构造函数 注解注…
它既是 DispatcherServlet 的 (WebApplicationContext)默认策略,又是 ContextLoaderListener 创建 root WebApplicationContext(根容器,同时也是 DispatcherServlet 的 WebApplicationContext 的父容器)的默认策略. 继承体系 一.XmlWebApplicationContext实例化过程 spring的配置文件加载是以监听的方式加载的xml配置文件 spring-web-4…