Spring笔记.pdf

pdf,Spring,笔记,计算机及AI
文档页数:176
文档大小:10.73MB
文档格式:pdf
文档分类:计算机及AI
上传会员:
上传日期:
最后更新:

Spring核心知识点 目录 Spring 框架功能整体介绍. 3 1.1 Sring Core Container... 3 1.1.1 Core..... 1.1.2 Beans (BeanFacotry 的作用). 1.1.3 Context.... .4 1.1.4 Expression Language. .4 1.2 Spring Data Access/lntegration.. .4 1.2.1 JDBC. .4 1.2.2 ORM. ..4 1.2.3 OXM.... 1.2.4 JMS.. 4 1.2.5 Transaction.. ..5 uuds et .5 1.4 Spring Aop... .5 1.4.1 Aspects... .5 1.4.2 Instrumentation.. -5 1.5 Test.. .. 1.6Spring容器继承图. .5 1.7控制反转和依赖注入 .6 1.7.1什么是控制反转?

.6 二、SpringIOC容器底层注解使用. ..7 2.1xml配置文件的形式VS配置类的形式. .7 2.1.1基于xml的形式定义Bean的信息 2.1.2基于读取配置类的形式定义Bean信息 ..7 2.2在配置类上写@CompentScan注解来进行包扫描 ..8 2.2.1排除用法excludeFilters. .8 2.2.2包含用法 includefilters. .8 2.2.3 @ComponentScan.Filter type 的类型. .. 2.2.4FilterType.CUSTOM自定义类型如何使用 .9 2.3配置Bean的作用域对象 .9 2.3.1在不指定@Scope的情况下,的bean 都是单实例的bean,而且是饿汉加载(容器启动实例 就创建好了... ..9 2.3.2指定@Scope为prototype表示为多实例的,而且还是懒汉模式加载(IOC容器启动的时候, 并不会创建对象,而是在第一次使用的时候才会创建) 10 2.3.3@Scope指定的作用域方法取值. 10 2.4Bean 的懒加载@Lazy.. .10 2.5@Conditional进行条件判断等 ..10 2.6往IOC容器中添加组件的方式 ..11 2.6.1通过@CompentScan. ..11 2.6.2通过@Bean的方式来导入组件 ..1 2.6.3通过@lmport来导入组件 ..11 2.6.4通过实现FacotryBean接口来实现注册组件. -12 2.7Bean的初始化方法和销毁方法. 13 2.7.1什么是bean的生命周期?

. 13 2.7.2通过 InitializingBean 和 DisposableBean的二个接口实现 .13 2.7.3通过JSR250规范提供的注解@PostConstruct和@ProDestory 标注的方法. ..13 2.7.4通过 Spring的 BeanPostProcessor的bean的后置处理器会拦截bean创建过程 . 144 2.8通过@Value@PropertySource来给组件赋值. ..15 2.9自动装配 .15 2.9.1@AutoWired的使用.. -15 2.9.2我们自己的组件如何使用Springloc底层组件 .16 2.9.3 @Profile 注解 ..17 三、Spring loc 容器源码解析. .18 面试资科 ...18
3.1.1AnnotationConfigApplicationContex的创建为我们做了什么?

..18 3.2Spring源码解析之扩展原理. .27 3.2.1 ApplicationListener:Spring 是如何发布事件的?

. ..27 3.2.2 BeanDefinitionRegistryPostProcessor的处理源码流程. 30 3.2.3 BeanFactoryPostProcessor 处理流程 .31 3.3 Spring Bean 的实例化过程. ..46 3.3.1bean实例化过程的调用链. 46 3.3.2bean的实例化过程源码分析. ..48 3.4SpringlOC容器启动源码的分析. .-82 3.4.1IOC容器启动的核心流程 .82 3.4.2IOC容器启动的核心流程源码分析 四、Spring 是如何解决循环依赖的 ..82 110 4.1什么是循环依赖?

.. .110 4.1.1代码实例: 111 4.1.2可能存在的问题: 111 4.1.3解决方案... ..111 4.2什么是早期引用?

. ...112 4.2.1先来看下如下代码调用链: 112 4.2.2 DefaultSingletonBeanRegistry#getSingleton... .112 4.2.3Bean加载整个过程调用链 113 五、Spring Aop 源码分析. 116 5.1 AOP.... .116 5.1.1 AOP.. .116 5.1.2基本概念 .117 5.1.3简单案例 117 5.2 @EnableAspectJAutoProxy.. 119 5.2.1 Import(AspectJAutoProxyRegistrar.class).. 119 5.2.2所以我们来分析AspectJAutoProxyRegistrar类是用来干什么的?

119 5.2.3 AnnotationAwareAspectJAutoProxyCreator.. 121 5.3 AnnotationAwareAspectJAutoProxyCreator... ..121 5.4代理对象创建 ..124 5.4.1 postProcessAfterlnitialization().... 124 5.4.2 wrapifNecessary().. 125 5.4.3 getAdvicesAndAdvisorsForBean(). .126 5.4.4 findEligibleAdvisors().. .126 5.4.5 findCandidateAdvisors(). .126 5.4.6 findAdvisorsThatCanApply () 133 5.4.7 createProxy(). 134 5.5代理对象调用目标方法. .136 六、spring 事务源码解析. .140 6.1事务概念解析.. .140 6.1.1什么是事物?

.140 6.1.2事物的特性(ACID). 140 6.2 Spring事务三大接口介绍. ..140 6.2.1 PlatformTransactionManager 接口介绍 ..141 6.2.2TransactionDefinition事务属性的定义 .141 6.2.3 TransactionStatus 接口介绍 .143 6.3@EnableTransactionManagement注解给容器加入了什么组件 144 6.3.1@EnableTransactionManagement 开始分析 144 6.3.2TransactionManagementConfigurationSelector组 145 6.3.3ProxyTransactionManagementConfiguration类 149 6.4事务源代码解析流程 .151 6.4.1创建源代码过程. .151 6.4.2 postProcessAfterlnitialization.. 152 6.5代理对象调用流程. .161 6.5.1 JdkDynamicAopProxyinvoke.. 161 6.5.2 ReflectiveMethodlnvocation#proceed.. 162 6.5.3interceptor.TransactionInterceptor#invoke事务拦截器进行调用 ..163
6.5.4TransactionAspectSupport#invokeWithinTransaction(事务调用) 163 七、Spring5.0新特性之日志框架. 168 7.1日志框架场景. 168 7.2我们Java中常用的日志框架是什么?

169 7.2.1我们常常听说的就是如下的日子框架,还不知道怎么选?

169 7.2.2加入我们系统使用的是SLF4J作为日志门面,我们是如何匹配?

170 7.3Spring4.Xspring底层使用的日志技术. 175 7.4 Spring5.x底层使用的日志技术 ...175 SpringFrameworkRuntime Data Access/lntegration Web JDBC ORM WebSocket Servlet OXM SWr Transactions Web Portlet AOP Aspects Instrumentation Messaging Core Container Beans Core Context SpEL Test 一、Spring 框架功能整体介绍 1.1Sring CoreContainer 模块作用:Core和Beans模块是框架的基础部分,提供IoC(反转控制)和依赖注入特性.

这里的基 础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允 许你从程序逻辑中分离出依赖关系和配置 1.1.1 Core 主要包含Spring框架基本的核心工具类,Spring的其他组件都要用到这个包里的类,Core模块 是其他组件的基本核心.

关注:程序员追风,领取更多一线大厂面试资料
1.1.2Beans(BeanFacotry的作用) 它包含访间配置文件、创建和管理bean 以及进行Inversion of Control|Dependency Injection(IoC/DI)操作相关的类 1.1.3Context 处理BeanFactory,还是ApplicationContext 的作用.

模块构建于Core和Beans 模块基础之上,提供了一种类似JNDI注册器的框架式的对象访间方法.

Context 模块继承了Beans的特性,为Spring核心提供了大量扩展,添加了对国际化(例如资源绑定)、 事件传播、资源加载和对Context的透明创建的支持.

Context模块同时也支持J2EE的一些特性, ApplicationContext接口是Context 模块的关键.

本质区别:(使用 BeanFacotry的bean是延时加载的,ApplicationContext 是非延时加载的) 1.1.4ExpressionLanguage 模块提供了强大的表达式语言,用于在运行时查询和操纵对象.

它是JSP2.1规范中定义的unifed expressionlanguage的扩展.

该语言支持设置/获取属性的值,属性的分配,方法的调用,访间数组上 下文(accessiong the context of arrays)、容器和索引器、逻辑和算术运算符、命名变量以及从Spring 的IoC容器中根据名称检索对象.

它也支持list投影、选择和一般的list聚合.

1.2SpringDataAccess/lntegration 1.2.1 JDBC JDBC模块提供了一个JDBC抽象层,它可以消除长的JDBC编码和解析数据库厂商特有的错误代 码.

这个模块包含了Spring对JDBC数据访间进行封装的类.

1.2.2 ORM ORM模块为流行的对象一关系映射API,如JPA、JDO、Hibernate、iBatis等,提供了一个交互层.

利用ORM封装包,可以混合使用Spring提供的特性进行0/R映射,如前边提到的简单声明性事务管理.

1.2.3 OXM OXM模块提供了一个对Object/XML映射实现的抽象层,将java对象映射成XML数据,或者将XML数 据映射成java 对象,Object/XML映射实现包括JAXB、Castor、XMLBeans、JiBX和XStrearn.

1.2.4JMS JMS(JavaMessagingService)模块提供一套“消息生产者、消息消费者”模板用于更加简单的 使用JMS,JMS用于两个应用程序之间,或分布式系统中发送消息,进行异步通信.

关注:程序员追风,领取更多一线大厂面试资料 天注:
1.2.5 Transaction 支持编程和声明性的事务管理,这些事务类必须实现特定的接口,并且对的POJ0都适用 1.3SpringWeb Web模块提供了基础的面向Web的集成特性.

例如,多文件上传、使用servlet listeners初始化 loC容器以及一个面向Web的应用上下文.

它还包含Spring远程支持Web的相关部分.

1.4SpringAop 1.4.1Aspects Aspects模块提供了对Aspect的集成支持.

1.4.2Instrumentation Instrumentation模块提供了class instrumentation支持和classloader实现,使得可以在特 定的应用服务器上使用.

1.5Test Test 模块支持使用JUnit和TestNG对Spring组件进行测试.

1.6Spring容器继承图

资源链接请先登录(扫码可直接登录、免注册)
①本文档内容版权归属内容提供方。如果您对本资料有版权申诉,请及时联系我方进行处理(联系方式详见页脚)。
②由于网络或浏览器兼容性等问题导致下载失败,请加客服微信处理(详见下载弹窗提示),感谢理解。
③本资料由其他用户上传,本站不保证质量、数量等令人满意,若存在资料虚假不完整,请及时联系客服投诉处理。

投稿会员:匿名用户
我的头像

您必须才能评论!

手机扫码、免注册、直接登录

 注意:QQ登录支持手机端浏览器一键登录及扫码登录
微信仅支持手机扫码一键登录

账号密码登录(仅适用于原老用户)