Spring set注入方法

IoC控制反转

控制反转(IoC,Inversion of Control),是一个概念,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转移,从程序代码本身反转到了外部容器,通过容器实现对象的创建,属性赋值,依赖的管理。IoC当前比较流行的实现方式是依赖注入(DI,Dependency Injection)

依赖注入DI

依赖注入DI是指程序运行过程中,若需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序。

Spring 的依赖注入对调用者与被调用者几乎没有任何要求,完全支持对象之间依赖关系的管理。

Spring 框架使用依赖注入(DI)实现 IoC。Spring 容器是一个超级大工厂,负责创建、管理所有的 Java 对象,这些 Java 对象被称为 Bean。Spring 容器管理着容器中 Bean 之间的依赖关系,Spring 使用“依赖注入”的方式来管理 Bean 之间的依赖关系。使用 IoC 实现对象之间的解耦和。

Spring中DI的实现

Spring中DI的实现有两种:
1、在Spring配置文件中,使用标签和属性实现DI,称为基于XML的DI。
2、使用Spring中的注解来实现DI,称为基于注解的DI

基于XML的DI

bean 实例在调用无参构造器创建对象后,就要对 bean 对象的属性进行初始化。初始化是由容器自动完成的,称为注入。
根据注入方式的不同,常用的有两类:set 注入、构造注入。

set注入

set 注入也叫设值注入,是指通过 setter 方法传入被调用者的实例。这种注入方式简单、直观,因而在 Spring 的依赖注入中大量使用。
根据属性的数据类型的不同,set注入又可以分为简单类型的set注入和引用类型的set注入。

简单类型的set注入

Spring中规定基本数据类型和String类型都是简单类型。

声明一个Student类

public class Student {
   
    private String name;
    private int age;
    
    public void setName(String name) {
   
        this.name = name;
    }

    public void setAge(int age) {
   
        this.age = age;
    }

    @Override
    public String toString() {
   
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

在Spring的配置文件中声明需要添加到容器中的对象

<bean id="myStudent" class="com.xxx.package01.Student">
    
    <property name="name" value="zhangsan" />
    <property name="age" value="20" />
    
bean>

写一个测试类来测试DI

 
 

你可能感兴趣的:(spring,ioc)