Spring框架(2)—IOC、MVC

本文深入探讨Spring框架的核心——IOC容器,详细解释了IOC的概念、DI(依赖注入)及其三种实现方式。此外,还介绍了Spring MVC框架的基础,包括创建Spring MVC项目的步骤和配置过程,帮助读者理解Spring在后端开发中的应用。
摘要由CSDN通过智能技术生成

一、Spring的loC容器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7thD44cJ-1647445462666)(D:\dyit\20220227\doc\images\container-magic.png)]

  • TheSpring Container :Spring IoC容器可以理解为工厂,可以使用工厂模式
  • 上面的箭头 POJO指的是要创建的对象
  • 左侧的箭头可以理解为配置文件(xml、注解)——>中间的IoC容器会解析配置文件——>解析后,把POJO对象放入工厂中——>也就是放入 IoC容器中——>最后用户使用时从IoC容器获取对象

Spring 容器是 Spring 框架的核心。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。

IOC 容器具有依赖注入功能的容器,它可以创建对象,IOC 容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。通常new一个实例,控制权由程序员控制,而"控制反转"是指new实例工作不由程序员来做而是交给Spring容器来做。

IOC的概念

IoC: Inverse Of Control 控制反转

tomcat容器,过滤器、servlet都运用了IOC的原理

  • 工厂中创建了对象,放入缓存中

  • 之前的方式: 需要对象 act.getBean(“对象的id”)—>对象

  • 工厂(IoC):

    1.之前的方式:bean配置:假设A 对象需要获取B对象。 a(){ new B()}:控制器在A,A创建B对象

    2.改进的方式:a(){factory.create()} :控制权转移,造出B对象 a主动通知工厂

  • 3.spring最终使用的方式:IOC控制反转
    A{
    private B b ;
    }

IoC容器含有B对象, 发现A需要B的对象,将B的对象注入给A

(IOC控制反转,也被称为好莱坞原则:从演员–>导演–>简历,转变你们为不用找我,你们的信息我都有,当我需要演员时候,我会主动找你。)

DI是什么?

DI可以理解为IOC控制反转的实现,也就是依赖注入的实现。IOC控制反转只是一种依赖注入的理论。

背景:IOC实现过程中,很复杂,很难实现。 有些概念没有交代的特别请求。
Thoughsworks的Martin Flower提出了几个问题

控制权是什么?如何反转?反转什么?

"控制反转"是指new实例工作不由程序员来做而是交给Spring容器来做

实现过程中DI: 依赖注入

依赖注入的3种实现方式?

1.set注入(推荐使用)
<bean id="pb" class="com.dyit.entity.Publisher">

	<property name="id" value="1"/>
	<property name="name" value="工人出版社"/>
	<property name="loc" value="长安区"/>
</bean>
2.构造方法注入
public class Author {
   
	
	private Integer id;
	private String name;
	private String address;
	
	public Author() {
   
	}
	
	public Author(String name, String address) {
   
		this.name = name;
		this.address = address;
	}

	@Override
	public String toString() {
   
		return "Author [id=" + id + ", name=" + name + ", address=" + address + "]";
	}

}
<bean id="au" class
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值