gpt4 book ai didi

spring - 如何在 Spring 中使用多个名称命名 @Service?

转载 作者:行者123 更新时间:2023-12-04 23:39:57 27 4
gpt4 key购买 nike

我需要类似的东西:

@Named({"bean1", "bean2"})

@Service({"bean1", "bean2"})

有人可以帮助我吗?

最佳答案

不是直接的,你有它的方式。但是可以通过重新定义现有的 @Service (或 @Component)作为 @Bean使用名称或名称列表,这是可能的。

@Service("Service-A")
public class SampleService {
public String doSomething() { return "Foo"; }
}

@Configuration
public class SampleConfig {

@Bean(name = {"Service-B", "Service-C"})
public SampleService createMirroredService(@Autowired SampleService service) {
return service;
}
}

现在你有 SampleService 的三个实例: Service-A (您的 @Service)、 Service-B , 和 Service-C .这是有效的,因为您定义了一个并且只有 @Bean带注释的方法通过实现,具有创建别名的作用。确保在扫描中选择了配置类并且它应该可以正常工作。

备注 :虽然这有效,并且可能还有其他解决方案,但我想不出需要它的情况。也许如果我正在与一个已经存在的库集成,我无法更改。但是我觉得这不是一个严重的需求,否则他们会制作 value@Component一个数组。

关于spring - 如何在 Spring 中使用多个名称命名 @Service?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41025627/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com