深入Spring源码解析
深入Spring源码解析
ghostxbh
慢慢积累
展开
-
SpringMVC学习笔记总结
一、SpringMVC基础入门,创建一个HelloWorld程序1.首先,导入SpringMVC需要的jar包。2.添加Web.xml配置文件中关于SpringMVC的配置<!--configure the setting of springmvcDispatcherServlet and configure the mapping--> <servlet> ...原创 2018-07-09 23:54:45 · 248 阅读 · 0 评论 -
SpringMVC笔记(二)
SpringMVC(二)通过上一篇 SpringMVC 的博文,我们掌握了如何新建 SpringMVC 项目,了解了其大致工作原理,了解了常用的注解,知道了 REST 风格的架构,通过源码初步了解到了数据绑定的流程。接着上次我们继续对 SpringMVC 进行学习。数据绑定、校验、格式化SpringMVC 通过反射机制对目标处理方法进行解析,将请求消息绑定到处理方法的入参中。数据绑定流程Sprin...原创 2018-07-09 23:46:25 · 333 阅读 · 0 评论 -
SpringMVC笔记(一)
概述SpringMVC 通过一套 MVC 注解,让一个 POJO 成为处理请求的控制器,而无需实现任何接口HelloWorld步骤概括加入 jar 包加入 SpringMVC 配置文件在 web.xml 文件中配置 DispatcherServlet编写处理请求的处理器,并标识为处理器编写视图详细步骤创建 Maven 工程,加入 jar 依赖<properties> <s...原创 2018-07-09 23:44:55 · 351 阅读 · 0 评论 -
Spring深入理解-BeanPostProcessor的使用
一、接口描述 spring提供了一个接口类-BeanPostProcessor,我们叫他:bean的加工器,应该是在bean的实例化过程中对bean做一些包装处理,里边提供两个方法 public interface BeanPostProcessor{ public abstract Object postProcessBeforeInitialization(Object...原创 2018-08-04 09:38:02 · 1757 阅读 · 0 评论 -
Spring深入理解-之源码AOP(XML配置方式)
引言 Spring 的两大核心,一是IOC,我们之前已经学习过,并且已经自己动手实现了一个,而令一个则是大名鼎鼎的 AOP,AOP的具体概念我就不介绍了。 我们今天重点是要从源码层面去看看 spring 的 AOP 是如何实现的。注意,今天楼主给大家分享的是 XML 配置AOP的方式,不是我们经常使用的注解方式,为什么呢? 有几个原因: Spring AOP 在 2....原创 2018-08-02 12:31:05 · 291 阅读 · 0 评论 -
Spring强化——简单的IOC
引言 再上一篇文章中,楼主和大家一起分析spring的 IOC 实现,剖析了Spring的源码,看的出来,源码异常复杂,这是因为Spring的设计者需要考虑到框架的扩展性,健壮性,性能等待元素,因此设计的很复杂。楼主在最后也说要实现一个简单的 IOC,让我们更加深刻的理解IOC,因此,有了这篇文章。 当然我们是仿照Spring 的 IOC,因此代码命名和设计基本是仿照spring的...原创 2018-08-01 10:52:16 · 293 阅读 · 0 评论 -
Spring深入理解-之源码AOP(注解方式二)
3. AnnotationAwareAspectJAutoProxyCreator 类 这个类的名字很长,为什么要说这个类呢?还记得我们刚开始说的 BeanPostProcessor 扩展接口吗? 我们说该接口是spring 留给开发人员自定义增强bean的接口。而该类则实现了该接口,看名字也知道,该类是根据注解自动创建代理的创建者类。我们看看他的类图: 可以看到...原创 2018-08-01 10:52:43 · 258 阅读 · 0 评论 -
Spring深入理解-之源码AOP(注解方式一)
引言 上一篇文章我们从XML 配置文件的方式剖析了AOP的源码,我们也说了,虽然现在用XML配置的几乎没有了,但作为学习的例子,XML配置仍然是我们理解Spring AOP 的一个绝好的样本。 但作为一个由追求的程序员,我们天天使用的注解方式的AOP 肯定也是要去看看到底是如何实现的。现在有了之前阅读 XML 配置的源码的基础,今天我们来阅读注解方式的源码也变得轻松起来。 ...原创 2018-08-01 10:52:37 · 422 阅读 · 0 评论 -
Spring深入理解-之源码IOC(二)
5. 如何创建Bean实例并构建Bean的依赖关系网 我们刚刚创建了Bean工厂,并创建 BeanDefinitions 放进Map里,以beanName为key。那么我们现在有了Bean定义,但还没有实例,也没有构建Bean与Bean之间的依赖关系。 我们知道,构建依赖关系是 IOC 的一个重要的任务,我们怎么能放过。那么是在哪里做的呢?在 finishBeanFactory...原创 2018-07-31 22:39:18 · 302 阅读 · 0 评论 -
Spring深入理解-之源码IOC(一)
引言 作为Java程序员,Spirng我们再熟悉不过,可以说比自己的女朋友还要亲密,每天都会和他在一起,然而我们真的了解spring吗? 我们都知道,Spring的核心是IOC和AOP,但楼主认为,如果从这两个核心中挑选一个更重要的,那非IOC莫属。AOP 也是依赖于IOC,从某些角度讲,AOP就是IOC的一个扩展功能。 什么是IOC? IOC解决了什么问题?IOC的原理是...原创 2018-07-31 09:07:35 · 508 阅读 · 0 评论 -
Spring入门——(十、Bean管理的注解实现:Required、Autowired)
>@Required>@Autowired示例:spring-injection.xml配置:<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XM.原创 2018-07-10 23:06:54 · 339 阅读 · 0 评论 -
Spring入门——(九、Bean管理的注解实现)
Bean管理的注解实现及例子>Classpath扫描与组件管理》从spring3.0开始,Spring JavaConfig项目提供了很多特性,包括使用Java而不是XML定义 bean,比如@Configuration,@Bean,@Import,@DependsOn》@Component是一个通用注解,可用于任何Bean》@Repository,@Service,@Contr...原创 2018-07-10 22:53:45 · 250 阅读 · 0 评论 -
Spring入门——(八、Resource和ResourceLoader)
Resources>针对资源文件的统一接口>Resources- UrlResource:URL对应的资源,根据一个URL地址即可构建- ClassPathResource:获取类路径下的资源文件- FileSystemResource:获取文件系统里面的资源- ServletContextResource:ServletContext封装的资源,用于访问ServletContext环...原创 2018-07-10 22:11:42 · 512 阅读 · 3 评论 -
Spring入门——(七、Bean的自动装配【Autowiring】)
Bean的自动装配(Autowiring)>No:不做任何操作>byname:根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配(如果存在相同的bean,则启动失败,aop不允许有重复的id)>byType:如果容器中存在一个与指定属性类型相同的bean,那么将于该属性自动装配;如果存在多个该类型的bean,那么抛出异常,并指出不能使...原创 2018-07-10 21:44:05 · 1209 阅读 · 0 评论 -
Spring入门——(六、Aware)
Aware>spring中提供了一些以Aware结尾的接口,实现了Aware接口的bean在被初始化之后,可以获取相应资源>通过Aware接口,可以对spring相应资源进行操作(一定要慎重)>为对spring进行简单的扩展提供了方便的入口官网文档:示例:MoocApplicationContext类:package com.imooc.aware; import org.sp...原创 2018-07-10 21:25:17 · 288 阅读 · 0 评论 -
Spring入门——(五、Bean(二))
>Bean的自动装配>Resources&ResourcesLoader>Bean的配置项》Id Bean的唯一标识》*Class 具体实例化的类》Scope 作用域》Constructor arguments 构造器的参数》Properties Bean的属性(构造注入、设值注入用过)》Autowiring mode 自动装配模式》lazy_initializati...原创 2018-07-09 22:54:48 · 279 阅读 · 0 评论 -
Spring入门——(四、Spring注入)
>Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量的赋值行为>常用的两种注入方式:- 设值注入- 构造注入示例:dao层:public interface InjectionDao { void save(String arg); } daoImpl层:public class InjectionDaoImpl implements In...原创 2018-07-04 18:32:24 · 353 阅读 · 0 评论 -
Spring入门——(三、Bean)
1、Spring的Bean配置2、Bean容器初始化基础:两个包- org.springframework.beans- org.springframework.context- BeanFactory提供配置结构和基本功能,加载并初始化bean- ApplicationContext保存了Bean对象并在Spring中被广泛使用方式:ApplicationContext- 本地文件(绝对路径)-...原创 2018-07-04 17:50:05 · 276 阅读 · 0 评论 -
Spring入门——(二、IOC)
控制反转IOC>接口及面向接口编程>什么是IOC>Spring的Bean配置>Bean的初始化>Spring的常用注入方式1、接口(对外的一种说明)介绍:用于沟通的中介物的抽象化实体把自己提供给外界的一种抽象化说明,用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式对应java接口即声明,声明了哪些方法是对外公开提供的在java8中,...原创 2018-07-04 16:52:39 · 285 阅读 · 0 评论 -
Spring入门——(一、介绍)
Spring入门1、如何学习spring掌握用法深入理解不断实践反复总结再次深入理解与实践2、spring简介spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但现在已经不止应用于企业应用是一个轻量级的控制反转(ioc)和面向切面编程(aop)的容器框架-从大小与开销两方面而言spring都是轻量级的-通过控制反转(ioc)的技术达到松耦合的目的-提供了面向切面编程的丰富支持,允许...原创 2018-07-04 16:29:07 · 380 阅读 · 0 评论