gpt4 book ai didi

java - 在@Profile 中使用通配符

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:24:07 24 4
gpt4 key购买 nike

如何在@Profile中使用通配符?

例如:

@Profile("*-from-db")
private class Foo {
spring.profiles.active"-from-db" 结束时,

Foo bean 应该被激活;如 dev-from-db、qa-from-db、prod-from-db 等。

最佳答案

正如其他人所说,使用 @Profile 注释是不可能的,只能通过实现您自己的 Condition 来完成。

为此,您需要创建注释(例如 @ConditionalOnProfileSuffix)并创建 Condition 的实现(最简单的方法是从 SpringBootCondition 扩展) ).

之后,您必须使用 @Conditional 注释来注释您的条件注释,例如:

@Conditional(OnProfileSuffixCondition.class)

OnProfileSuffixCondition(SpringBootCondition 的实现)中,您可以使用以下方法检索 Activity 配置文件:

conditionContext.getEnvironment().getActiveProfiles()

要从注释中检索值,您可以使用:

annotatedTypeMetadata.getAllAnnotationAttributes(ConditionalOnProfileSuffix.class.getName()); 

这将返回一个 MultiValuedMap,其中键是注释属性名称,值是任何对象(取决于类型)。

关于java - 在@Profile 中使用通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46318792/

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