Spring基础篇:基于XML的依赖注入(IOC)

简介: 基于XML的依赖注入(IOC)

依赖注入

依赖注入的作用可以做到解耦,解耦的意思是:类与类之间的关系变得松散,从硬编码表达关系变成外部文件配置。用代码的语言讲就是:A类要依赖B类,A类不再直接创建B类,而是把这种依赖关系配置在外部xml文件中。而这个xml文件是由Spring容器读取配置信息,然后管理bean类。

例子展开

例子:人与小狗,两个类。人养了一只小狗 在代码中可以这样做。

  • Person.class表示人 类
public class Person {
    private String name;
    private Pet pet;
    
    // getter and setter
}

但是限制死Dog类总归是不太好的,应该要有抽象类的思维。

public abstract class Pet {
    private String name;
}

准备狗

public class Dog extends Pet{

}

硬编码的形式是这样表达人与狗的关系的:

Person person = new Person();
person.setPet(new Dog());

我们说过这样的耦合性很高,因为修改人的Pet属性需要重新编译代码。如果Person类改为数据库类呢?而Pet属性是一些连接设置相关的配置,这样代码的耦合性就太高啦,对于修改极不方便。

让我们看看Spring是如何做的,我们知道Spring是可以以外置配置文件驱动的,所以我们可以在配置文件中做这个属性配置,这个动作也叫依赖注入

<bean id="dog" class="juejin.di.bean.Dog"></bean>

<bean id="person" class="juejin.di.bean.Person">
    <property name="pet" ref="dog"></property>
    <property name="name" value="Chengyunlai"></property>
</bean>

注意看这里的标签和属性:<property>,它表示的是类里面定义的属性,它有两个主要的属性,一个是name,一个是ref或者是value

  • name:它对应的是该类中的set方法。这里的pet对应的是setPet中的Pet
  • ref:它的内容是指向一个类,里面放的是其他定义类的id名称
  • value:对应一些常量,例如字符串、数值。

这里我们演示的setter注入,其他还有构造器注入等,方式和上面写的方法类似。

关于依赖查找的内容,将在下一篇使用注解的方式一块介绍。

目录
相关文章
|
2天前
|
XML Java 数据格式
Spring框架入门:IoC与DI
【5月更文挑战第15天】本文介绍了Spring框架的核心特性——IoC(控制反转)和DI(依赖注入)。IoC通过将对象的创建和依赖关系管理交给容器,实现解耦。DI作为IoC的实现方式,允许外部注入依赖对象。文章讨论了过度依赖容器、配置复杂度等常见问题,并提出通过合理划分配置、使用注解简化管理等解决策略。同时,提醒开发者注意过度依赖注入和循环依赖,建议适度使用构造器注入和避免循环引用。通过代码示例展示了注解实现DI和配置类的使用。掌握IoC和DI能提升应用的灵活性和可维护性,实践中的反思和优化至关重要。
17 4
|
2天前
|
Java 测试技术 开发者
Spring IoC容器通过依赖注入机制实现控制反转
【4月更文挑战第30天】Spring IoC容器通过依赖注入机制实现控制反转
22 0
|
2天前
|
XML Java 程序员
Spring特性之二——IOC控制反转
Spring特性之二——IOC控制反转
16 4
|
2天前
|
XML Java 数据格式
Spring高手之路18——从XML配置角度理解Spring AOP
本文是全面解析面向切面编程的实践指南。通过深入讲解切面、连接点、通知等关键概念,以及通过XML配置实现Spring AOP的步骤。
22 6
Spring高手之路18——从XML配置角度理解Spring AOP
|
2天前
|
安全 Java 开发者
在Spring框架中,IoC和AOP是如何实现的?
【4月更文挑战第30天】在Spring框架中,IoC和AOP是如何实现的?
23 0
|
2天前
|
XML Java 程序员
什么是Spring的IoC容器?
【4月更文挑战第30天】什么是Spring的IoC容器?
20 0
|
2天前
|
存储 缓存 Java
【Spring系列笔记】依赖注入,循环依赖以及三级缓存
依赖注入: 是指通过外部配置,将依赖关系注入到对象中。依赖注入有四种主要方式:构造器注入、setter方法注入、接口注入以及注解注入。其中注解注入在开发中最为常见,因为其使用便捷以及可维护性强;构造器注入为官方推荐,可注入不可变对象以及解决循环依赖问题。本文基于依赖注入方式引出循环依赖以及三层缓存的底层原理,以及代码的实现方式。
24 0
|
2天前
|
Java Spring 容器
【Spring系列笔记】IOC与DI
IoC 和 DI 是面向对象编程中的两个相关概念,它们主要用于解决程序中的依赖管理和解耦问题。 控制反转是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入和依赖查找。
34 2
|
2天前
|
Java 测试技术 数据库连接
Spring中ioc的优点
总之,Spring中的IoC提供了一种更加灵活、可维护、可测试和可扩展的方式来管理组件之间的依赖关系,从而提高了应用程序的质量和可维护性。这使得开发人员能够更专注于业务逻辑而不是底层的技术细节。
32 1
|
2天前
|
XML IDE Java
Spring_bean注解(xml解析)
Spring_bean注解(xml解析)
11 0