`

Spring 依賴注入(JAVA)

 
阅读更多

配置类

CDPlayerConfig.java

 

package soundsystem;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class CDPlayerConfig {

    @Bean
    public CompactDisc sgtPeppers() {
        return new SgtPeppers();
    }
    
    @Bean
    public CDPlayer cdPlayer() {
        return new CDPlayer(sgtPeppers());
    }
}

 

 

CD播放器类:

CDPlayer.java

 

package soundsystem;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class CDPlayer {
    private CompactDisc cd;
    
    @Autowired
    public CDPlayer(CompactDisc cd) {
        this.cd = cd;
    }
    
    public void play() {
        cd.play();
    }
}

 

CD接口:

 

CompactDisc.java

 

package soundsystem;

public interface CompactDisc {
    void play();
}

 

CD实现类:

 

SgtPeppers.java

 

package soundsystem;

import org.springframework.stereotype.Component;

@Component
public class SgtPeppers implements CompactDisc {

    private String title = "Sgt. Pepper's Lonely Hearts Club Band";
    private String artist = "The Beatles";
    
    private String test;

    public void play() {
        System.out.println("Playing " + title + " by " + artist);
    }

    public String getTest() {
        return test;
    }

    public void setTest(String test) {
        this.test = test;
    }

}

 

 

测试类

CDPlayerTest.java

package soundsystem;

import static org.junit.Assert.*;

import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.SystemOutRule;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=CDPlayerConfig.class)
public class CDPlayerTest {
    
    @Rule
    public final SystemOutRule log = 
        new SystemOutRule().enableLog();

    @Autowired
    private CDPlayer player;

    @Autowired
    private CompactDisc cd;

    @Test
    public void cdShouldNotBeNull() {
        assertNotNull(cd);
    }
    
    @Test
    public void play() {
        player.play();

        assertEquals(
            "Playing Sgt. Pepper's Lonely Hearts Club Band by The Beatles\r\n",
            log.getLog());
    }
}

 

分享到:
评论

相关推荐

    java中spring依赖注入的简单例子

    依赖注入早期叫控制反转 也可以称反射 他们的意义都相同 当某个 Java 实例 调用者 需要另一个Java 实例 被调用者 时 在传统的程序设计过程中 通常由调用者来创建被调用者的实例 而在依赖注入的模式下 创建被调用者的...

    spring依赖注入底层详解

    Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的底层实现机制。 首先,我们要...

    spring依赖注入的实现原理

    Spring依赖注入(Dependency Injection,简称DI)是Java应用开发中的一个重要概念,它是Spring框架的核心特性之一,用于降低组件之间的耦合度,提高代码的可测试性和可维护性。本篇文章将深入探讨Spring依赖注入的...

    spring依赖注入

    Spring依赖注入是Spring框架的核心特性之一,它使得对象之间的依赖关系得以解耦,增强了代码的可测试性和可维护性。依赖注入(Dependency Injection,简称DI)的理念是,一个对象不应该负责寻找并创建它所依赖的对象...

    spring学习:依赖注入的几种方式讨论

    Spring的依赖注入提供了XML、注解和Java配置等多种方式,满足不同场景的需求。自动配置是Spring Boot的一大特色,极大地简化了微服务的开发。理解并熟练掌握这些方式,对于提升Spring应用的开发效率和质量至关重要。...

    Spring依赖注入——java项目中使用spring注解方式进行注入.rar

    在Java开发领域,Spring框架是应用最广泛的轻量级框架之一,它提供了强大的依赖注入(Dependency Injection,简称DI)功能,极大地简化了组件之间的耦合。本知识点将深入探讨Spring框架如何通过注解方式实现依赖注入...

    Spring依赖注入的方式

    在Spring框架中,依赖注入(Dependency Injection,简称DI)是一种重要的设计模式,它使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。本文将深入探讨Spring中的依赖注入方式,包括构造器注入、设值注入...

    Spring学习笔记(6)----编码剖析Spring依赖注入的原理

    本篇学习笔记将深入剖析Spring依赖注入的原理,通过源码分析帮助我们理解这一核心机制。 首先,依赖注入允许我们解耦组件之间的关系,使得各个组件可以独立地进行开发、测试和维护。在Spring中,DI主要通过两种方式...

    模仿Spring依赖注入

    【Spring依赖注入详解】 在Java开发中,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)功能而闻名。依赖注入是一种设计模式,它允许我们解耦组件,使我们的应用程序更加灵活,易于测试和维护。本篇...

    Spring依赖注入检查.

    Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的概念、工作原理以及如何在实际...

    spring依赖注入三种方式 测试源码

    通过阅读和理解这些源码,你可以更深入地了解Spring依赖注入的工作原理及其在项目中的具体使用。 在进行依赖注入时,Spring使用BeanFactory或ApplicationContext作为容器,负责创建、管理和装配Bean。容器读取配置...

    Spring依赖注入使用构造设注入demo

    本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,并通过一个完整的可运行示例——"SpringIOCTest2"来加深理解。 首先,理解依赖注入的概念。依赖注入允许我们不在类内部创建对象,而是通过外部源...

    如何实现Spring依赖注入 AOP.rar

    Spring框架是Java开发中广泛应用的一个轻量级容器,它的核心特性是依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect Oriented Programming,简称AOP)。这两个特性极大地简化了Java应用程序的开发和...

    自定义依赖注入工具类SpringUtil.java

    自定义依赖注入工具类SpringUtil.java

    spring依赖注入bean

    综上所述,Spring 的依赖注入和 Bean 管理不仅限于 Web 应用,也可以方便地应用于 Java Application 中,通过 XML 或注解配置来实现组件间的解耦,提高代码质量。这个示例项目 `test` 可能包含了实现上述功能的代码...

    spring依赖注入例子

    在Spring中,依赖注入可以通过XML配置、注解或Java配置实现。本例子主要关注基于注解的依赖注入,这是一个现代且更简洁的方法。 首先,让我们理解一下依赖注入的基本概念。在面向对象编程中,一个类可能会依赖于...

    Spring依赖注入使用setter设注入demo

    在这个名为“Spring依赖注入使用setter设注入demo”的示例中,我们将深入探讨如何通过setter方法实现Spring的依赖注入。 首先,理解依赖注入的基本思想:对象之间的依赖关系不是由对象自身管理,而是由外部容器(在...

    java Spring DI依赖注入.rar

    在`chapter8`这个文件夹中,可能包含了关于Spring依赖注入的深入讲解,包括如何配置和使用,以及在实际项目中的应用示例。学习这部分内容可以帮助你理解如何利用Spring的DI特性来构建更优雅、更易于维护的Java应用。...

    Spring依赖注入使用静态工厂设注入demo

    在Spring框架中,依赖注入(Dependency Injection,DI)是一种核心设计模式,它使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本篇将详细讲解如何使用静态工厂方法进行依赖注入,结合提供的...

Global site tag (gtag.js) - Google Analytics