Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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 两种不同的同一种豆子的用法_Java_Spring_Spring Bean - Fatal编程技术网

Java 两种不同的同一种豆子的用法

Java 两种不同的同一种豆子的用法,java,spring,spring-bean,Java,Spring,Spring Bean,我有一个使用OAuth2RestTemplatebean与其他支持oauth的服务通信的服务。这个bean使用client\u id\u A和client\u secret\u B 我已经编写了一个应用程序,用于在访问资源时通过操作验证用户凭据。这个应用程序还有一个OAuth2RestTemplatebean,它具有client_id_B和client_secret_B。我给这个bean命名为restemplateb,并使用@Qualifier(“restemplateb”) 当两个应用程序作为

我有一个使用OAuth2RestTemplatebean与其他支持oauth的服务通信的服务。这个bean使用client\u id\u A和client\u secret\u B

我已经编写了一个应用程序,用于在访问资源时通过操作验证用户凭据。这个应用程序还有一个OAuth2RestTemplatebean,它具有client_id_B和client_secret_B。我给这个bean命名为restemplateb,并使用@Qualifier(“restemplateb”)

当两个应用程序作为两个不同的应用程序运行时,它们工作正常

现在我正在构建第二个应用程序作为一个jar,并在第一个应用程序中使用它进行验证,并得到以下异常

" No qualifying bean of type 'org.springframework.security.oauth2.client.OAuth2RestTemplate' available: expected single matching bean but found 2: restTemplate, restTemplateB"
由于我想将appb分发给其他团队并在多个服务中使用,我不想让他们给自己的bean命名(restemplatea)并在使用的地方添加@Qualifier


我不想让其他服务在使用我的服务时更改它们的名称。任何关于如何克服此问题的建议

您可以将一个
@Profile(“我的”)
添加到restTemplateB中,在应用程序中启用该配置文件,默认情况下该配置文件将不包括
mine
,也不会加载该bean。这没有帮助。我正在将restTemplateB配置加载到应用程序A的上下文中,它正在创建这两个bean,并使它们在应用程序ADid中可用。您是否也启用了配置文件?它需要活动的配置文件来激活bean。是的,在启用之前,我得到了bean创建异常。当我启用该概要文件时,它有两个bean,而spring在启用之前无法理解要使用哪一个(我已经更新了以前的注释),它能找到任何bean吗?后来它发现了两颗豆子?不应该是这样。如果您拥有两个模板,还可以将一个配置文件注释为“!mine”,将另一个配置文件注释为“mine”。