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注入,其他还有构造器注入等,方式和上面写的方法类似。

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

目录
相关文章
|
7天前
|
XML Java 数据格式
【SpringFramework】Spring IoC-基于XML的实现
本文主要讲解SpringFramework中IoC和DI相关概念,及基于XML的实现方式。
96 69
|
5天前
|
Java Spring 容器
【SpringFramework】Spring IoC-基于注解的实现
本文主要记录基于Spring注解实现IoC容器和DI相关知识。
40 21
|
12天前
|
XML Java 数据格式
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
|
12天前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
10天前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
|
16天前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
53 6
|
28天前
|
Java 数据库 数据安全/隐私保护
轻松掌握Spring依赖注入:打造你的登录验证系统
本文以轻松活泼的风格,带领读者走进Spring框架中的依赖注入和登录验证的世界。通过详细的步骤和代码示例,我们从DAO层的创建到Service层的实现,再到Spring配置文件的编写,最后通过测试类验证功能,一步步构建了一个简单的登录验证系统。文章不仅提供了实用的技术指导,还以口语化和生动的语言,让学习变得不再枯燥。
40 2
|
1月前
|
存储 缓存 Java
Spring面试必问:手写Spring IoC 循环依赖底层源码剖析
在Spring框架中,IoC(Inversion of Control,控制反转)是一个核心概念,它允许容器管理对象的生命周期和依赖关系。然而,在实际应用中,我们可能会遇到对象间的循环依赖问题。本文将深入探讨Spring如何解决IoC中的循环依赖问题,并通过手写源码的方式,让你对其底层原理有一个全新的认识。
54 2
|
2月前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
45 0
|
3月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
86 1