gpt4 book ai didi

java - 如何使方法签名中的 spring 托管类可选?

转载 作者:行者123 更新时间:2023-11-29 07:46:34 26 4
gpt4 key购买 nike

我如何定义注入(inject)服务可选的 spring 托管方法签名?

以下当然不起作用,因为方法签名中不允许使用 @Autowired 注释。但这就是我的意图。

@Bean
public MyService myService(@Autowired(required = false) OptionalService optional) {
MyService service = new MyService();
//configure service if optional service is supplied
return service;
}

最佳答案

您不应该将@Bean 与方法一起使用,而应使用@Service 声明您的类MyService 并使用您的Spring 配置对其进行扫描。然后,您可以使用 @Autowired(required = false) 来拥有类型为 OptionalService 的字段。您的服务应如下所示:

@Service
public class Myservice {

@Autowired(required=false)
private OptionalService optional;

}

然后如果你需要在你的 optionalService 被 Spring 注入(inject)后做一些事情(或者因为它不是必需的),你可以让你的服务实现 InitializingBean 和它的 afterPropertiesSet 方法并在此处执行。

关于java - 如何使方法签名中的 spring 托管类可选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25141493/

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