spring的理解

spring是什么

spring是一个javaEE轻量级的一站式开发框架。

javaEE:就是用于开发B/S的程序(企业级)

轻量级:使用最少代码启动框架,然后根据你的需求选择,选择你需要的模块使用。

重量级:早期有的EJB,开发一个HelloWord程序都需要引入EJB的全部模块。

一站式:提供了,表现层(Struts2/springmvc),服务层,持久层的所有的支持。

Spring框架出现的背景

在世界第一套有Java官方Sun公司推出的企业级开发框架EJB出现后,瞬间风靡全球。被各大公司所应用。
Spring之父,Rod Jonhson是一个音乐博士,在Sun公司的大力推广下,也成为EJB框架的使用者。
在深入研究完EJB框架(由Sun主导开发的一个JavaEE开发框架),无法接收这么一个框架被吹成世界第一,具体查看他吐槽EJB的书《Expert one on one J2EE design and development》
其中突出被他吐槽最厉害的一个点就EJB的重量级,就是只要使用EJB里面任何一个组件。都要将所有EJB的jar导进去。
于是他就提供了一个他的解决方案:轻量级的一站式企业开发框架。

那么什么是轻量级呢?
就是除内核模块(4个jar),其他模块由开发者自由选择使用,同时支持整合其他框架。

也可以称为就是可插拔式开发框架,像插头和插座一样,插上就用。这就是Spring框架核心理念。(Ioc)

那么什么是一站式呢?
就是Spring框架提供涵盖了JavaEE开发的表示层,服务层,持久层的所有组件功能。也就是说,原则上,学完一套Spring框架,不用其他框架就可以完成网站一条流程的开发。
如图:
spring的理解

spring框架的作用

spring是一个轻量级的一站式的开发框架。它提供的功能涵盖了程序中的表现层,服务层,持久层功能组件。这意味着,使用了spring框架,一个框架就可以满足整个javaEE程序的开发。
但spring框架,更加强调的是它的轻量级(模块的可插拔)也就是说,除了内核以外模块,如果你不想使用可以不用,它能整合任何第三方框架。
所以,在现实开发中,spring主要用于整合其它框架。

总的来说:

1.Spring是一个一站式的企业级(JavaEE)开发框架,意味着,仅仅使用一个Spring框架就可以满足JavaEE开发的表示层,服务层,持久层的开发。
2.Spring强调的理念是,轻量级。意味着Spring提供的功能模块,除了内核模块以外,开发人员可以选择性使用。
3.所以,Spring框架在现实开发中,主要的功能用于整合,各种开发来开发项目。
4.Spring之所以可以实现模块的可插拔是支持依赖注入,所谓的依赖注入/控制反转就是不用new就可以创建对象。

spring的IOC控制反转和DI依赖注入

IOC:Inverse of Control(控制反转):
读作“反转控制”更好理解,不是什么技术。而是一种设计思想,好比于mvc。就是将本在程序中手动创建对象的控制权,交由spring框架来管理。
正控:若调用者需要使用某个对象,其自身就得负责该对象的创建。
反控:调用者只管负责从spring容器中获取需要使用的对象,不关心对象的创建过程,也就是把创建对象的控制权反转给了spring框架。(Don’t call me ,I’ll call you)
DI:Dependency Injection(依赖注入)
Ioc:讲对象的创建权,反转给了spring容器。
DI:指spring创建对象的过程中,将对象依赖属性(简单值,集合,对象)通过配置设值给该对象。
Ioc和DI其实是同一个概念的不同角度描述,DI相对IOC而言,明确描述了“被注入对象依赖IOC容器配置依赖对象”。
Container:容器,在生活中容器就是一个盛放东西的器皿,从程序设计角度看作是装对象的对象,因为存在对对象的存入,取出等操作,所以容器还要管理对象的生命周期。
spring的理解