JavaConfig中的Spring Bean别名

dtr*_*unk 7 java spring dependency-injection spring-bean

我有一个带@Service注释的类,它提供了我可以在所有项目中使用的核心功能:

@Service
public class MyService {}
Run Code Online (Sandbox Code Playgroud)

和另一个扩展它以实现项目特定的东西:

@Service
public class ExtendedMyService extends MyService {}
Run Code Online (Sandbox Code Playgroud)

现在我想配置一个bean别名,以便@Qualifier("MyServiceAlias")在使用属性自动装配它时使用:

# MyService qualifier (default: myService)
myService.qualifier=extendedMyService
Run Code Online (Sandbox Code Playgroud)

在XML中它看起来像:

<alias name="${myService.qualifier}" alias="MyServiceAlias" />
Run Code Online (Sandbox Code Playgroud)

这里也讨论了它,但我只需要使用XML,JavaConfig.是否可能以及如何实现?

Evg*_*rov 14

有一个开放的Jira:https://jira.spring.io/browse/SPR-6736

解决方法是@Bean@Configuration课堂上使用:

@Configuration
public class AppConfig {

  @Bean(name = { "dataSource", "subsystemA-dataSource", "subsystemB-dataSource" })
  public MyService myService() {}

}
Run Code Online (Sandbox Code Playgroud)