2、关于 Spring Ioc,看这一篇就够了!


1.1 Ioc 定义

Ioc(Inversion of Control),即 控制反转,是 Spring 框架的核心内容,实际上指的是 对一个对象的控制权的反转,和 OOP 一样,属于一种设计思想。Ioc 表示将我们 设计好的对象交由容器控制,而 不再使用在对象内部直接控制 这种传统方式,而 DI(依赖注入)则是实现 Ioc 的一种方法

1.2 Ioc 工作流程

Spring Ioc 容器在初始化时先读取配置文件,然后根据配置或元数据来创建与组织对象存入容器中,当程序要使用时再从 Ioc 容器中读取出需要的对象。

2. Ioc 实例


2.1 项目创建

  1. 创建一个 Maven 项目,然后在 pom.xml 中引入 spring-context 以及 Junit 的依赖;

org.springframework

spring-context

5.2.7.RELEASE

junit

junit

4.13

test

  1. resourcees 目录下创建一个 Spring 的配置文件,然后会生成如下包含内容的模板;
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd”>

  1. Spring 配置文件创建好之后,就可以在其中配置我们需要注册到 Spring 容器中的 Bean,其中 class 属性用于表示要注册的 Bean 的全路径,而 id 则是 Bean 的唯一标识。
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd”>

此处配置的是 com.cunyu.domain 包下的 Book 类,所以需要对应源文件存在,我的 Book 类定义如下:

package com.cunyu.domain;

/**

  • @author : cunyu

  • @version : 1.0

  • @className : Book

  • @date : 2020/7/7 14:10

  • @description : Book 类

*/

public class Book {

private Integer id;

private String name;

private Double price;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Double getPrice() {

return price;

}

public void setPrice(Double price) {

this.price = price;

}

}

  1. 好了,完成上面的配置之后,我们的 Bean 就已经被注册到 Spring 容器中了,接下来只需要加载这个配置文件,然后利用 getBean() 方法从容器中获取对象即可;

import com.cunyu.domain.Book;

import org.springframework.context.support.ClassPathXmlApplicationContext;

最后

现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**

image
ionContext;

最后

现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**

[外链图片转存中…(img-NRMzgSnx-1718728562001)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值