Spring IoC概述以及IoC基本使用

153 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第2天,点击查看活动详情

前言

学习Spring的时候,我也是很头疼的,所以我尽量写的通俗易懂一些,主要面向那些新手小白,能让大家更易于理解。

什么是IoC

IoC其实就是控制反转

在传统的程序开发中,需要调用对象时,通常由调用者来创建被调用者的实例,即对象是由调用者主动new出来的。

但在Spring框架中创建对象的工作不再由调用者来完成,而是交给loC容器来创建,再推送给调用者,整个流程完成反转,所以是控制反转。

画个图理解下 微信截图_20220929191315.png

根据我个人的理解举个例子:以前买东西需要你自己去店里把东西买回来,现在有了IoC,就相当于可以网购,你只需要掏出手机付钱下单,你购买的商品就会送到你手上,省去了一些中间你需要带回家的步骤。

当然,这个例子只是我个人的理解,不见得准确。

IoC的特点

IoC的特点就是解耦合,耦合的代码,我们通过IoC的方式,就可以实现解耦合。

解耦合的目的是为了提高我们程序的可维护性可扩展性

使用IoC

1. 创建maven工程,并且在pom.xml中添加spring依赖

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

2.添加lomboky依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
</dependency>
  • :这里添加lombok依赖是为了后面可以使用@Data注解开发,可以省去写类属性的get和set方法。

不理解注解开发的小伙伴我在后续的文章中会详细简介,这里只需要先知道@Data注解的作用即可。

3.创建实体类Dog

package com.xyj;
import lombok.Data;

@Data
public class Dog {
    private String name;
    private int age;
    private String variety;
}

一般方式,手动new

Dog dog = new Dog();
dog.setName("tom");
dog.setAge(3);
dog.setVariety("泰迪");
System.out.println(dog);

打印结果

Dog(name=tom, age=3, variety=泰迪)

使用IoC的方式,在配置文件中添加对象进行管理

<bean id="dog" class="com.xyj.Dog">
    <property name="name" value="bob"></property>
    <property name="age" value="5"></property>
    <property name="variety" value="秋田"></property>
</bean>
  • id作为对象的标识
  • class表示所关联的类
  • property标签会用于属性赋值
  • name会自动关联实体类的成员变量
  • value为成员变量的值

从IoC中获取对象

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");
//加载配置文件
Dog dog = (Dog) applicationContext.getBean("dog");
System.out.println(dog);

打印结果

Dog(name=bob, age=5, variety=秋田)
  • 使用applicationContext的getBean方法取对象,括号中的参数为你要取对象的id。

这就是IoC的一个基本的使用。