首先声明,依赖注入和反转容器是密不可分的,二者相互依存,依赖注入是实现反转控制的一种方式,允许对象在创建时将其依赖项提供给它,而不是在内部创建这些依赖项。这样可以增强代码的可测试性和可维护性。
spring依赖注入的几种方式:
构造器注入
通过构造器函数传递依赖项
setter注入
通过 setter 方法设置依赖项。
注解方式
使用 @Autowired
注解自动注入依赖。
XML配置
通过 XML 文件定义 Bean 的依赖关系。
依赖注入的“好老板”——控制反转容器ApplicationContext
四种方式都需要通过创建 ApplicationContext
对象来启动 Spring 的控制反转(IoC)容器。ApplicationContext
管理整个应用的 Bean 生命周期,并负责依赖注入。可以通过不同的实现类(如 ClassPathXmlApplicationContext
或 AnnotationConfigApplicationContext
)来加载配置
ApplicationContext
是 Spring 框架的核心接口,返回的是 Spring IoC 容器。它负责管理对象的创建、配置和生命周期。在使用 ApplicationContext
时,你通常会得到一个实现了该接口的对象,比如 ClassPathXmlApplicationContext
。
ApplicationContext的实现接口
ClassPathXmlApplicationContext
使用 ClassPathXmlApplicationContext
时,需要传入 XML 配置文件的路径,例如:new ClassPathXmlApplicationContext("applicationContext.xml")
。它会读取类路径下的 XML 文件,并根据其中的配置创建相应的 Bean 实例。
FileSystemXmlApplicationContext
FileSystemXmlApplicationContext
是 ApplicationContext
的一种实现,专门用于从文件系统加载 XML 配置文件,适合在项目外部的 XML 配置
例如:ApplicationContext context = new FileSystemXmlApplicationContext("path/to/applicationContext.xml");
AnnotationConfigApplicationContext
例如:ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);