当前位置: 首页 > 面试题库 >

春季:如何将String bean注入构造函数?

徐凌
2023-03-14
问题内容

我有一堂课Config

配置文件

public class Config {
    private final String p = "Prop";

    @Bean
    public String getP(){return p;}
}

我如何将其注入一些构造函数,即:

public class SomeC {
    private String p;

    public SomeC(String p) {
        this. p = p;
    }
}

我希望此字符串p具有从Config注入的值。那可能吗?


问题答案:

您将必须命名Bean,然后@Qualifier在自动装配引用该名称时使用注释。

例:

配置文件

public class Config {
    private final String p = "Prop";

    @Bean(name="p")
    public String getP(){return p;}
}

SomeC.java

public class SomeC {
    private String p;

    @Autowired
    public SomeC(@Qualifier("p") String p) {
        this. p = p;
    }
}


 类似资料:
  • 本文向大家介绍春季构造函数注入和二传手注入之间的区别,包括了春季构造函数注入和二传手注入之间的区别的使用技巧和注意事项,需要的朋友参考一下 依赖注入是一种将依赖对象传递给其他对象的实践。Spring有两种类型的依赖注入: 基于构造函数的Injection -When容器调用类的构造函数。它应用于强制性依赖项。 假设X类紧密依赖于Y类,那么我们应该使用基于构造函数的注入。   基于Setter的注入

  • 问题内容: 我的spring bean具有一个带有唯一强制性参数的构造函数,我设法用xml配置对其进行了初始化: 然后,我像这样使用此bean,并且效果很好。 但是我想用注释指定contructor arg值,例如 这可能吗 ? 提前致谢 问题答案: 首先,必须在bean定义中而不是在注入点中指定构造函数arg。然后,你可以利用spring的注释(spring 3.0) 就我所看到的问题而言,这可

  • 问题内容: 我已经用策略模式实现了一个程序。所以我有一个在某些地方使用的接口,并且可以替换具体的实现。 现在我要测试该程序。我想以类似的方式做。编写一次测试,针对该接口进行测试。应在测试开始时注入具体的接口实现,以便我可以轻松地替换它。 我的测试类看起来与此类似: 在开始测试时,必须使用参数化的构造器来注入具体的策略实施。 现在我没有让TestNG运行它并注入具体的实现实例。我试图与继承几种方法,

  • 我有一个接口,它在两个地方定义如下: 我的客户端实现类没有任何注释,只有必需的构造函数。在这种情况下,如何限定正确的接口实现用法?我不想使用,因为在我的例子中,将其中一个用法命名为primary在语义上是不正确的(它们在某种意义上是相等的)。我需要用相同的实现类传递相同的接口,但针对受尊敬的客户机的特定用例进行了不同的配置。我想命名一个参数就足够了,通过这个参数我将实现注入到bean创建方法中,但

  • 请帮助理解在哪种情况下我应该使用构造函数注入和设置器注入。请帮我举个合适的例子。 先谢谢你。

  • 注入是将依赖注入对象的过程。 构造函数注入很常见。 在此过程中,依赖项作为参数注入构造函数。 请参阅下面的示例。 创建一个名为GuiceTester的java类。 GuiceTester.java import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Inj