Spring入门:浅析IOC容器及IOC入门案例

5 篇文章 0 订阅

前言

Spring IOC容器是Spring框架的核心组件之一,它是一个容器,负责管理应用程序中的对象(即Bean)。在Spring IOC容器中,对象的创建、配置、管理和依赖注入都是由容器来完成的,而不是由程序员手动创建和管理。这使得应用程序更加松散耦合,易于维护和测试。

第一部分:Spring IOC容器的概念和原理

1.1 什么是IOC容器?

IOC容器是一个Java对象,它负责管理Bean对象的生命周期,即创建、配置、初始化、注入和销毁等过程。

IOC容器中存放的是一个个数据层和业务层的bean对象。

1.2 什么是依赖注入? 

依赖注入是IOC容器实现的核心机制,它使得容器可以自动将对象之间的依赖关系注入到对象中。例如,在一个Web应用程序中,一个Controller对象可能需要一个Service对象来处理业务逻辑。通过依赖注入,容器会自动创建和注入Service对象,从而使得Controller可以使用Service对象的功能。

 1.3 什么是控制反转?

控制反转是指,程序员不再手动创建和管理对象之间的依赖关系,而是将这个责任交给容器来完成。这种反转控制的设计思想可以减少对象之间的耦合,提高代码的可维护性和可测试性。

1.4 IOC容器的生命周期

IOC容器的生命周期包括以下几个阶段:

  • 实例化:IOC容器创建一个对象实例,并初始化其属性
  • 配置:IOC容器为对象设置属性值,如通过构造函数或Setter方法设置
  • 初始化:IOC容器调用对象的初始化方法,如init()方法
  • 注入:IOC容器将对象之间的依赖关系注入到对象中
  • 使用:IOC容器将对象返回给调用者,使用者开始使用对象
  • 销毁:IOC容器在应用程序关闭时销毁对象

1.5 Bean的作用域 

Spring IOC容器支持多种Bean作用域,包括以下几种:

  • Singleton:默认的作用域,IOC容器只会创建一个实例,并在应用程序关闭时销毁
  • Prototype:每次请求都会创建一个新的实例
  • Session:在Web应用程序中,每个会话会创建一个新的实例
  • Request:在Web应用程序中,每个请求会创建一个新的实例

 第二部分:Spring IOC容器的入门案例

1.创建maven项目:

(具体配置maven项目的环境可以随便在csdn或者去B站搜教程,本人看的教程是这个,大家可以参考一下2022版 的IDEA创建一个maven项目(超详细)_无尽的沉默的博客-CSDN博客)

2.pom.xml添加Spring的依赖jar包 

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.10.RELEASE</version>
    </dependency>
</dependencies>

3.创建BookService,BookServiceImpl,BookDao和BookDaoImpl四个类

public interface BookDao {
	public void save();
}
 
public class BookDaoImpl implements BookDao {
	public void save() {
		System.out.println("book dao save ...");
	}
}
 
public interface BookService {
	public void save();
}
 
public class BookServiceImpl implements BookService {
	private BookDao bookDao = new BookDaoImpl();
 
	public void save() {
		System.out.println("book service save ...");
		bookDao.save();
	}
}

4.resources下添加spring配置文件,并完成bean的配置

<bean id="bookDao" class="dao.impl.BookDaoImpl"/>
<bean id="bookService" class="service.impl.BookServiceImpl"/>

注意事项:bean定义时id属性在同一个上下文中(配置文件)不能重复

5.获取IOC容器  

使用 Spring 提供的接口完成 IOC 容器的创建,创建 App 类,编写 main方法(在主方法下接着上文:
public class App {
public static void main(String[] args) {
//获取IOC容器
ApplicationContext ctx = new
ClassPathXmlApplicationContext("applicationContext.xml");
}
}

6.从容器中获取对象进行方法调用  

public class App {
public static void main(String[] args) {
//获取IOC容器
ApplicationContext ctx = new
ClassPathXmlApplicationContext("applicationContext.xml");
// BookDao bookDao = (BookDao) ctx.getBean("bookDao");
// bookDao.save();
BookService bookService = (BookService) ctx.getBean("bookService");
bookService.save();
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值