Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Spring中自动关联同一类的2个实例_Java_Spring - Fatal编程技术网

Java 在Spring中自动关联同一类的2个实例

Java 在Spring中自动关联同一类的2个实例,java,spring,Java,Spring,我尝试使用Spring创建同一类的两个实例,我想让Spring管理依赖注入。我遇到的问题是,这些实例中的任何一个都已经有一些@Autowired字段,这两个实例的字段相同,因此我无法使用@Configuration类(或者我不知道如何使用)。例如,这是我的用例的草图: //这里要使用什么注释? 甲级{ @自动连线 头等舱; @自动连线 二等兵; 私有布尔aBool; //这里使用什么注释?从何处以及如何调用此构造函数? 公共A(布尔ABOL){ this.aBool=aBool; } } B类{

我尝试使用Spring创建同一类的两个实例,我想让Spring管理依赖注入。我遇到的问题是,这些实例中的任何一个都已经有一些
@Autowired
字段,这两个实例的字段相同,因此我无法使用
@Configuration
类(或者我不知道如何使用)。例如,这是我的用例的草图:

//这里要使用什么注释?
甲级{
@自动连线
头等舱;
@自动连线
二等兵;
私有布尔aBool;
//这里使用什么注释?从何处以及如何调用此构造函数?
公共A(布尔ABOL){
this.aBool=aBool;
}
}
B类{
@自动连线
@限定符(“aboltrue”)//或类似的注释
私有A oneInstanceOfA;//oneInstanceOfA.aBool==true
@自动连线
@限定词(“aboolflse”)
私有A theOtherInstanceOfA;//theOtherInstanceOfA.aBool==false
}

在本例中,我需要Spring创建和管理通过同一构造函数创建的同一类的两个不同实例(请参阅与aBool相关的注释),但参数值不同。使用Spring可以实现这个场景吗?

您好,您可以使用2方法添加@Configuration类

@Configuration
class ConfigurationClass{
  @Bean
  @Qualifier("aBoolTrue") // 
  public A oneInstanceOfA(SomeClass someClass, OtherClass second){ //Maybe With Other Qualifier for the parameter if needed  
     return new A(someClass, second, true);//Need another construtor
  }  

  @Bean
  @Qualifier("aBoolFalse")
  public A oneInstanceOfA(SomeClass someClass, OtherClass second){
     return new A(someClass, second, false);//Need another construtor
  }  
}

这篇文章有明确的解释