spring概念 及 SpringIoc 、DI

Spring框架,即:SpringFramework,主要优势

  • 1、丰富的生态系统:Sping支持许多模块和库,如:SpringBoot、SpringSecurity、SpringCloud等,

  • 2、模块化设计:框架组件之间的松散耦合和模块化设计使得SpringFramework具有良好的可重用性、可扩展性、可维护性。

  • 3、简化java开发,SpringFramework简化了java开发,提供了各种工具和API,降低开发成本,

    同时,SpringFramework支持各种应用场景,包括Web应用程序、RESTful API、消息传递、批处理等

Spring使创建Java企业应用程序变得容易,它提供了在企业环境中采用 Java 语言所需的一切,

支持Groovy和Kotin作为JVM上的替代语言,并且可以根据应用程序的需求灵活地创建多种架构,
SpringFramework从6.06开始,Spring需要java17+


SpringFramework主要功能模块

a. Core Container:核心容器,在Spring环境下使用任何功能都必须基于IOC容器

b. AOP&Aspects:面向切面编程

c. TX:声明式事务管理

d. Spring MVC:提供了面向Web应用程序的集成功能

SpringIoc容器介绍:

SpringIoc容器,负责实例化、配置和组装Bean(组件),

容器通过读取配置文件,来获取有关要实例化、配置和组装组件的指令,

配置文件以XML、Java注解或java代码形式表现,

它允许表达组成应用程序的组件以及这些组件之间丰富的相互依赖关系。

SpringIoc容器接口:

BeanFactory接口提供了一种高级配置机制,能够管理任何类型的对象,它是SpringIoc容器标准化超接口。

ApplicationContext 是 BeanFactory的子接口,它扩展了以下功能

a. 更容易与Spring的AOP功能集成

b. 消息资源处理(用于国际化)

c. 特定于应用程序给与此接口实现,例如Web应用程序的WebApplicationContext

简而言之,BeanFactory提供了配置框架和基本功能,而,ApplicationContext添加了更多特定于企业的功能,

ApplicationContext 是 BeanFactory 的完整超集。

ApplicationContext容器的实现类:

类名									简介
a. ClassPathXmlApplicationContext:通过读取类路径下的XML格式的配置文件,创建IOC容器对象

b. FileSystemXmlApplicationContext:通过文件系统路径,读取XML格式的配置文件,创建IOC容器对象

c. AnnotationConfigApplicationContext:通过读取Java配置类,创建IOC容器对象

d. WebApplicationContext:专门为Web应用准备,基于Web环境创建IOC容器对象,并将对象引入存入ServletContext域中

Spring框架的配置方式:XML配置方式,注解方式,java配置类方式

  • 1、XML配置方式:

    是Spring框架最早的配置方式之一,通过在XML文件中定义Bean及其依赖关系、Bean的作用域等信息,

    让SpringIoC容器来管理Bean之间的依赖关系,该方式从Spring框架的第一版开始提供支持

  • 2、注解方式:

    从Spring2.5版本开始提供支持,可以通过在Bean类上使用注解来替代XML配置文件中的配置信息,

    通过在Bean类上加上相应的注解(如:@Component、@Service、@Autowired等),

    将Bean注册到SpringIoC容器中,这样

  • 3、java配置类方式:

    从Spring3.0版本开始提供支持,通过java类来定义Bean、Bean之间的依赖关系和配置信息,

    从而代替XML配置文件的方式,java配置类是一种使用java编写配置信息的方式,

    通过@Configuration、@Bean等注解来实现Bean和依赖关系的配置

  • 现在主流的开发环境:配置类 + 注解


Spring Ioc / DI:

  • 1、IoC容器:

    SpringIoC容器,负责实例化,配置和组装Bean(组件)核心容器,

    容器通过读取配置文件来获取有关要实例化、配置和组装组件的指令

  • 2、IoC(Inversion of Control)控制反转

    IoC主要针对,对象的创建和调用控制而言的,

    也就是说,

    当应用程序需要使用一个对象时,不再是应用程序直接创建该对象,而是由IoC容器来创建和管理,

    即:控制权由应用程序,转移到IoC容器中,也就是"反转"了控制权。

    这种方式基本上是通过依赖查找的方式实现的,即:IoC容器维护着构成应用程序的对象,并负责创建这些对象

  • 3、DI(Dependency Injection)依赖注入

    DI是指,在组件之间传递依赖关系的过程中,将依赖关系在容器内部进行处理,

    这样就不必在应用程序中硬编码对象之间的依赖关系,实现了对象之间的解耦合。

      在Spring中,DI是通过XML配置文件或注解的方式实现的,
      它提供了三种形式的依赖注入:
      	3.1、构造函数注入
      	3.2、Setter方法注入
      	3.3、接口注入
    
相关推荐
星河梦瑾22 分钟前
SpringBoot相关漏洞学习资料
java·经验分享·spring boot·安全
黄名富25 分钟前
Redis 附加功能(二)— 自动过期、流水线与事务及Lua脚本
java·数据库·redis·lua
love静思冥想27 分钟前
JMeter 使用详解
java·jmeter
言、雲30 分钟前
从tryLock()源码来出发,解析Redisson的重试机制和看门狗机制
java·开发语言·数据库
TT哇36 分钟前
【数据结构练习题】链表与LinkedList
java·数据结构·链表
Yvemil71 小时前
《开启微服务之旅:Spring Boot 从入门到实践》(三)
java
Anna。。1 小时前
Java入门2-idea 第五章:IO流(java.io包中)
java·开发语言·intellij-idea
.生产的驴1 小时前
SpringBoot 对接第三方登录 手机号登录 手机号验证 微信小程序登录 结合Redis SaToken
java·spring boot·redis·后端·缓存·微信小程序·maven
爱上语文2 小时前
宠物管理系统:Dao层
java·开发语言·宠物
王ASC2 小时前
SpringMVC的URL组成,以及URI中对/斜杠的处理,解决IllegalStateException: Ambiguous mapping
java·mvc·springboot·web