我应该如何重写代码,以便Spring自动将组件注入类构造函数中?

凯特·瑞森(Kate Risen):

学习Spring,偶然发现困难。如何通过构造函数或通过字段注入bean?我学会了通过XML配置来做到这一点,但是它不能通过注释来工作。这是我的代码。界面音乐:

public interface Music {
    public String playMusic();
}

民间音乐类:

@Component
public class FolkMusic implements Music {
   @Override
   public String playMusic() {
       System.out.println("FOLK");
       return null;
   }
}

HipHipMusic类:

@Component
public class HipHopMusic implements Music {
    @Override
    public String playMusic() {
        System.out.println("HipHop");
        return null;
    }
}

音乐播放器类:

@Component
public class MusicPlayer {
    ArrayList<Music> mu;
    @Autowired
    public MusicPlayer(ArrayList arrayList){
        mu = arrayList;
    }
    public void playMusic(){
        System.out.println("Size = " + mu.size());
    }
}

搜索XML的组件:

    <context:component-scan base-package="cam.mark.mus"/>

我应该如何重写代码,以便Spring自动将组件注入MusicPlayer类构造函数中?使用此代码,控制台中不会出现任何错误。结果显示为“大小= 0”

穆罕默德·阿尔·阿尔瓦(Mohammad Al Alwa):

您需要使用List而不是ArrayList还要确保您List<Music>不在List构造函数中传递

MusicPlayer 应该看起来像这样:

@Component
public class MusicPlayer {

    List<Music> mu;

    public MusicPlayer(List<Music> arrayList) {
        mu = arrayList;
    }

    public void playMusic() {
        System.out.println("Size = " + mu.size());
    }
}

您可以@Autowired在构造函数上省略,因为只有一个构造函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 ReactJS 中,我将如何使用函数而不是类组件重写以下代码?

我应该如何修改我的代码以便 twosum 函数工作?

Spring:如何避免将构造函数注入与自动装配的字段结合使用

我应该如何为我的类编写构造函数

如何选择将哪种实现注入到自动装配的构造函数中

我应该导入在另一个类构造函数中注入的类吗?

如何在Javascript中重写基类构造函数

如何将 DbContext 注入 NRules 类构造函数?

如何使用构造函数参数将Inject()注入类?

我应该在哪里编写代码,以便Composer可以自动加载PHP类?

Spring无法自动注入构造函数参数

处理中的OOP,我应该如何构造我的类?

我应该如何重构以下情况,以便 Rails 自动加载我的类

通过Spring中的注释将参数注入构造函数

如何在通过注释自动装配的Spring bean中传递类构造函数参数

如何自动将参数应用于类构造函数?

如何将参数传递给类,以便在构造函数中传递参数时,JFrame会移动?

如何将构造函数参数注入集合夹具中?

Spring SLF4J记录器的构造函数注入-如何获取注入目标类?

如何声明模板化函数,以便可以在类构造函数/函数中传递

如何使用构造函数注入模拟类

我是否应该通过在类中使用构造函数注入来明确显示具体的类依赖关系?

我应该在控制器的构造函数中注入存储库类或模型类吗?

我应该将一个简单的函数重写为一个类吗?

Spring依赖项注入如何在带有@Component注释但没有构造函数注释的类中工作?

Guice-如何使没有args构造函数的类变成单例,并让变量自动注入?

Spring框架中的构造函数依赖注入

我应该如何定义构造函数(JS)

Javascript类:如何在父类代码中访问重写的父类函数