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、接口注入
    
相关推荐
我就是我35230 分钟前
记录一次SpringMVC的406错误
java·后端·springmvc
向哆哆32 分钟前
Java应用程序的跨平台性能优化研究
java·开发语言·性能优化
ekkcole1 小时前
windows使用命令解压jar包,替换里面的文件。并重新打包成jar包,解决Failed to get nested archive for entry
java·windows·jar
handsomestWei2 小时前
java实现多图合成mp4和视频附件下载
java·开发语言·音视频·wutool·图片合成视频·视频附件下载
全栈若城2 小时前
03 Python字符串与基础操作详解
java·开发语言·python
伯牙碎琴2 小时前
二、Spring Framework基础:IoC(控制反转)和DI(依赖注入)
java·spring·log4j
菲力蒲LY2 小时前
输入搜索、分组展示选项、下拉选取,全局跳转页,el-select 实现 —— 后端数据处理代码,抛砖引玉展思路
java·前端·mybatis
南宫生2 小时前
力扣每日一题【算法学习day.130】
java·学习·算法·leetcode
!!!5252 小时前
Java实现斗地主-做牌以及对牌排序
java·算法
我要最优解2 小时前
关于在mac中配置Java系统环境变量
java·flutter·macos