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

我有一个class级Config

Config.java

 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; } } 

我希望这个String p从Config中注入值。 那可能吗?

您必须命名bean,然后在自动assembly引用该名称时使用@Qualifier注释。

例:

Config.java

 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; } } 

您应该像这样使用@Autowired

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

或者像这样:

 public class SomeC { @Autowired private String p; } 

我更喜欢第二种方法,但是这使得类更难以测试,因为从外部看不到依赖项,因此请谨慎使用。