Spring 学习之一(了解spring)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 学习之一(了解spring)相关的知识,希望对你有一定的参考价值。



1,什么是​​spring​​框架

spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对​​Java​​Bean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用


Struts   MVC   表示层
Spring   IOC(DI),AOP 
Hibernate  ORM(对象-关系映射) 持久化层(数据处理层)     
 
SSH称为轻量级框架。轻量级参考物,之前我们使用的技术为EJB,EJB是重量级框架(占用资
源多,复杂,运行需要ejb服务器的支持).ssh 具备EJB的大部分功能,我们把他们称为轻量
级框架(占用资源少,运行不需要服务器支持).

 

2,SPRING组成

Spring

 

Struts     表示层 MVC   
Spring     业务逻辑层  IOC(DI),AOP

Hibernate  持久化层(数据处理层) ORM(对象-关系映射)     
Spring框架本身功能很强大,我们平时做项目主要是使用spring的IOC与AOP完成业务层
功能.但spring其实提供了所有层功能实现.比如表示层,我们可以选择使用
springMVC,springMVC完成的功能与struts一样.比如开发持久化层也可以选择
springDAO,SpringDAO的功能与hibernate类似.
表示层  SpringMVC

业务层  IOC,AOP, MVC(SpringMVC) ORM(SpringDAO)
持久化层 SpringDAO
就是说开发一个项目,使用spring一个框架就可以了.只不过表示层一般我们不适用
springMVC而使用struts,持久化层我们不适用springDAO而使用Hibernate.但我们要知道
spring提供了完整的实现.
SpringCore  这是spring的根基,其实这个core就是实现了ioc(DI).不管你使用上面的那
个功能, SpringCore必须使用.
SpringAOP  spring的面向方面编程.
SpringDAO  类似与hibernate的持久化层实现
SpringORM 当spring与hibernate整合时,需要使用此部分功能
SpringWebMVC 类似与struts的表示层实现.
SpringWeb 如果我们项目需要与Struts整合,我们需要使用SpringWeb
SpringContext 如果项目需要与EJB重量级框架整合,需要使用SpringContext

IOC(控制反转)
IOC 与DI 是从两个角度描述同一个事务.
IOC是Inverse Of Control的简写,叫控制反转
第一代:自己创建,自己使用.客户端的主要目的是使用,但却好耗费很大的精力来创建.
第二代:工厂方法,工厂方法分离对象的创建与使用,工厂负责创建,客户端只负责使用.
第三代:对象内部只声明接口,不创建,由容器负责创建并赋值.

控制反转:控制就是控制权,反转就是反过来更改.原来不管是自己创建对象还是由工厂类创建
对象,使用那个对象由应用程序决定.也就是说在程序运行前我们就知道是那个具体的实现类
在运行.现在客户端中只声明接口,并没有实际的实现类.程序运行使用那个对象在spring 配
置文件中进行配置,控制权由应用程序转移给spring 配置文件(spring 容器,IOC 容器),这叫
控制反转.
区别:传统的,程序运行前就知道那个具体的实现类在运行.现在,程序运行前并不知道那个具
体类在运行,只有程序真正运行到对应代码时才知道是那个具体的运行类.

控制,指的控制权,使用哪个对象,不管是自己创建,还是去工厂领一个,以前项目,使用
哪个对象由程序决定,控制权在应用程序手中。使用spring 后,程序中并没有写明创建哪
个对象,使用对象是由配置文件(容器)决定的,这就是控制反转。
DI(依赖注入)
IOC 与DI 是从两个角度描述同一个事务.
DI是Dependency Injection的简写,叫依赖注入
程序中定义接口,程序运行需要实现类,这个实现类不是在编译阶段决定的,而是在程序运行
过程中由容器注入的,我们叫依赖注入。
传统应用程序在编译阶段就知道了程序的运行轨迹(使用哪个对象,运行哪个对象),使用容器
后,在程序运行阶段时才知道使用哪个对象。

以上是关于Spring 学习之一(了解spring)的主要内容,如果未能解决你的问题,请参考以下文章

Spring 学习笔记控制反转 IoC

Spring Cloud Alibaba 之 Sentinel 限流规则和控制台实例

spring学习总结一----控制反转与依赖注入

新手学习Spring IOC控制反转和DI依赖转入总结

零基础带你看Spring源码——IOC控制反转

Spring学习