Spring 深入浅出技术(自己做笔记用的)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 深入浅出技术(自己做笔记用的)相关的知识,希望对你有一定的参考价值。

Spring的体系结构

技术分享图片
整个Spring框架按其所属功能可以划分为五个主要模块,这五个模块几乎为企业应用提供了所需的一切,从持久层、业务层到表现层都拥有相应的支持,这就是Spring为什么是一站式框架。IoC和AOP是Spring的核心。
-核心模块

?Spring的核心模块实现了IoC的功能,它将类和类之间的依赖从代码中脱离出来,用配置的方式进行依赖关系描述。 由IoC容器负责类的创建,管理,获取等。BeanFactory接口是Spring框架的核心接口,实现了容器很多核心的功能。

?Context模块构建于核心模块之上,扩展了BeanFactory的功能,包括国际化,资源加载,邮件服务,任务调度等多项功能。ApplicationContext是Context模块的核心接口。

?表达式语言(Expression Language)是统一表达式语言(EL)的一个扩展,支持设置和获取对象属性,调用对象方法,操作数组、集合等。使用它可以很方便的通过表达式和Spring IoC容器进行交互。
-AOP模块
?Spring AOP模块提供了满足AOP Alliance规范的实现,还整合了AspectJ这种AOP语言级的框架。通过AOP能降低耦合。
-数据访问集成模块

?事务模块:该模块用于Spring管理事务,只要是Spring管理对象都能得到Spring管理事务的好处,无需在代码中进行事务控制了,而且支持编程和声明性的事务管理。

?JDBC模块:提供了一个JBDC的样例模板,使用这些模板能消除传统冗长的JDBC编码还有必须的事务控制,而且能享受到Spring管理事务的好处。

?ORM模块:提供与流行的“对象-关系”映射框架的无缝集成,包括Hibernate、JPA、MyBatis等。而且可以使用Spring事务管理,无需额外控制事务。

?OXM模块:提供了一个对Object/XML映射实现,将java对象映射成XML数据,或者将XML数据映射成java对象,Object/XML映射实现包括JAXB、Castor、XMLBeans和XStream。

?JMS模块:用于JMS(Java Messaging Service),提供一套 “消息生产者、消息消费者”模板用于更加简单的使用JMS,JMS用于用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
-Web模块
?该模块建立在AoolicationContext模块之上,提供了Web应用的功能。如文件上传、FreeMarker等。
?Spring可以整合Struts2等MVC框架。Spring自己提供了MVC框架Spring MVC。
-测试模块
?Spring可以用非容器依赖的编程方式进行几乎所有的测试工作,支持JUnit和TestNG等测试框架。

Bean的作用域

Bean的作用域会对Bean的生命周期和创建方式产生影响技术分享图片
技术分享图片
技术分享图片

FactoryBean

我们前面的< bean >都是普通bean,Spring利用反射机制通过bean的class属性来实例化Bean。
如果有的Bean属性特别多,我们就需要编写大量的配置信息。Spring提供了一个FactoryBean< T >接口。
我们可以通过实现该接口来返回特定的Bean。
该接口定义了三个方法

?T getObject():返回由FactoryBean创建的Bean实例。

?boolean isSingleton():确定创建的Bean的作用域是singleton还是prototype

?Class< ? > getObjectType():返回FactoryBean创建Bean的类型
技术分享图片技术分享图片技术分享图片
当我们< bean >标签的class属性配置的类实现了FactoryBean接口时,通过getBean返回的就不是该类本身,而是getObject()方法所返回的对象,相当于getObject()方法代理了getBean().

以上是关于Spring 深入浅出技术(自己做笔记用的)的主要内容,如果未能解决你的问题,请参考以下文章

[Django笔记] models 深入学习

Spring学习笔记

《深入实践Spring Boot》阅读笔记之三:核心技术源代码分析

Spring入门---JPA学习笔记

《深入实践Spring Boot》阅读笔记之一:基础应用开发

C#委托,事件最初浅的和最易看懂的学习笔记