[英]Configure @Autowired from application.yml
我們有一些有條件的豆子
@Service
@ConditionalOnProperties("${condition}")
class Foo {
...
}
我們希望能夠根據相同的條件自動裝配那些 bean,有沒有辦法做類似的事情:
@Autowired(required="${condition}")
private Foo foo;
有沒有辦法使用 application.yml 中的屬性獲得這樣的結果?
您可以使用@ConditionalOnProperty(value = "condition", havingValue = "true")
創建一個 Foo 作為 bean,如下所示
@Configuration
public class BasicConfig {
@Bean
@ConditionalOnProperty(value = "condition", havingValue = "true")
public Foo foo() {
return new Foo();
}
}
將這個foo bean 注入為
@Autowired(required = false)
private Foo foo;
@Autowired(required = false)
用於將此字段設為可選。
只要滿足條件,這里的 foo 就會有價值,否則它將是 null。
您可以嘗試使用SPEL 。 例如: @Autowired(required="#{ systemProperties['user.region'] }")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.