Spring:Spring相关知识介绍笔记

开发 前端
Spring属于开源框架,Spring是于2003年流行起来的一个轻量级的Java开发基础框架,它是为了解决企业应用开发的复杂性而提供的解决方案。

[[430677]]

一、Srping概念

Spring属于开源框架,Spring是于2003年流行起来的一个轻量级的Java开发基础框架,它是为了解决企业应用开发的复杂性而提供的解决方案。该框架的主要优势之一就是其实现分层架构,分层架构允许使用者自由选择使用哪些组件,Spring同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只能由EJB完成的事情。Spring具有简单性、可测试性和松耦合的特点。Spring的核心技术是控制反转(IoC)和面向切面(AOP)。

二、Spring原理

2.1 控制反转(Inversion of control)(IOC)

利用java的反射特性让一个对象的创建可以不用new进行实例化,可以自动的生产,这其实就是利用java的反射特性,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置文件来动态的创建对象和调用对象里的方法。就是将对象,以及对象之间的引用关系,交给Spring容器统一管理。

2.2 面向切面编程(Aspect-Oriented Programming)(AOP)

AOP以OOP面向对象编程为前提和基础,主要用于将共通逻辑(日志记录,性能统计,事务处理,异常处理等)从普通的代码逻辑中分离出来,从而降低业务逻辑各部分的耦合度。

三、Spring框架结构

Spring框架主要有以下7个模块构成:

  • Spring AOP:面向切面编程思想,也提供了事务管理能力。
  • Spring ORM:提供了对Hibernate、myBatis等ORM框架的支持。
  • Spring DAO:提供了 对Data Access Object模式和JDBC的支持。实现业务逻辑与数据库访问代码分离,从而降低代码耦合度。
  • Spring Web:提供了Servlet监听器的Context和Web应用的上下文。
  • Spring Context:提供了Spring上下文环境。
  • Spring MVC:提供了MVC设计模式的实现。
  • Spring core:提供了Spring框架基本功能(IOC功能),如BeanFactory以工厂模式创建所需对象、通过读取xml文件实例化对象、管理组件生命周期等等。

 

 

 

四、Srping生命周期

 

 

 

 

1、实例化Bean也就是我们经常使用的new方法;

2、按照Spring上下文对实例化的Bean进行配置(IOC注入);

3、Bean实现BeanNameAware接口,会调用它实现的setBeanName(String)方法,传递的就是Spring配置文件中Bean的id值

4、Bean已经实现BeanFactoryAware接口,会调用它实现的setBeanFactory(setBeanFactory(BeanFactory)传递的是Spring工厂自身(可以用这个方式来获取其它Bean,只需在Spring配置文件中配置一个普通的Bean就可以);

5、Bean已经实现ApplicationContextAware接口,会调用setApplicationContext(ApplicationContext)方法,传入Spring上下文;

6、Bean关联了BeanPostProcessor接口,将会调用postProcessBeforeInitialization(Object obj, String s)方法,BeanPostProcessor经常被作为对Bean内容的更改,并且由于这个是在Bean初始化结束时调用那个的方法,也可以被应用于内存或缓存技术;

7、Bean在Spring配置文件中配置了init-method属性会自动调用其配置的初始化方法。

8、Bean关联了BeanPostProcessor接口,会调用postProcessAfterInitialization(Object obj, String s)方法;说明:以上工作完成以后就可以应用这个Bean了,那这个Bean属于Singleton的,所以一般情况下我们调用同一个id的Bean会是在内容地址相同的实例,当然在Spring配置文件中也可以配置非Singleton。

9、当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用那个其实现的destroy()方法;

10、最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。

 

五、Srping有什么优势?

5.1、非侵入式设计

Spring属于非侵入式(non-invasive)框架,它使应用程序代码对框架的依赖程度最小。

5.2、 方便解耦、简化开发

Spring就是一个大工厂,可以将所有对象的创建和依赖关系的维护工作都交给Spring容器统一管理,大大降低了组件之间的耦合性。

5.3、支持AOP

Spring框架提供了对AOP的支持,它允许将一些通用任务,如安全、事务、日志等进行统一处理,从而大大减少了代码量、提高了代码的复用率。

5.4、支持声明式事务处理

只需要通过配置就可以完成对事务的管理,而无需手动编程实现事务的逻辑。

5.5、便于系统测试

Spring提供了对Junit4的支持,可以通过注解方便的进行系统测试。

5.6、便于集成各种优秀框架

Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。

5.7、大大降低Java EE API的使用难度

 

Spring对Java EE开发中非常不友好的一些API(JDBC、JavaMail等),都提供了很好封装,使这些API应用难度会大大降低。

 

责任编辑:姜华 来源: IT技术分享社区
相关推荐

2009-06-17 17:59:01

介绍Spring

2009-06-18 10:27:42

Spring Time

2022-10-14 07:07:46

架构

2009-09-07 16:20:35

CCNA认证培训

2009-06-18 13:18:04

Spring IDE

2009-06-19 14:49:43

Spring框架

2021-02-06 23:03:58

SQLServer数据库变量

2022-01-26 06:59:46

SFTP操作系统加密算法

2009-06-19 18:38:01

Spring

2009-06-22 10:41:34

Spring.AOP

2022-11-25 07:59:02

SpringJava

2016-05-30 17:31:34

Spring框架

2009-07-20 10:42:55

Spring JDBC

2009-06-18 09:47:14

Spring的核心

2021-04-02 07:46:52

SQL Server数据库知识笔记

2009-11-17 17:07:01

PHP关联数组

2021-05-17 16:24:58

Spring Clou

2009-06-30 16:57:42

Spring事务管理

2009-06-17 14:57:11

Spring事务管理

2011-02-23 10:20:45

点赞
收藏

51CTO技术栈公众号