当前位置: 首页 > 知识库问答 >
问题:

是否创建具有特定@ConditionalOnProperty得批注?

姬慎之
2023-03-14

我的计划是创建一个注释,如果我把它放在一个类上,那么只有当@ConditionalOnProperty为true时,这个类才会是一个bean。

只有application.properties文件中存在backend-auth.enabled=true时,我才想创建一些bean(控制器/服务)。现在我有这个:

@RestController
@ConditionalOnProperty(prefix = "backend-auth", value = "enabled", havingValue = "true", matchIfMissing = false)
public class FirstController {}

@RestController
@ConditionalOnProperty(prefix = "backend-auth", value = "enabled", havingValue = "true", matchIfMissing = false)
public class SecondController{}

@Service
@ConditionalOnProperty(prefix = "backend-auth", value = "enabled", havingValue = "true", matchIfMissing = false)
public class FirstService {}

@Service
@ConditionalOnProperty(prefix = "backend-auth", value = "enabled", havingValue = "true", matchIfMissing = false)
public class SecondService{}

正如您所看到的,我正在重用@conditionalproperty部分,如果我想更改prefixvaluehavingvalue值,那么我必须在4个位置更改它,如果不注意,它可能会被遗漏...

我正在考虑创建一个包含@ConditionalProperty的批注,并在我的FirstControllerSecondControllerFirstServiceSecondService上使用此自定义批注。

我想以这样的方式结束:

@RestController
@BackendAuthEnabled
public class FirstController {}

@RestController
@BackendAuthEnabled
public class SecondController{}

@Service
@BackendAuthEnabled
public class FirstService {}

@Service
@BackendAuthEnabled
public class SecondService{}

共有1个答案

毋玺
2023-03-14

就这样吧:

@ConditionalOnProperty(prefix = "backend-auth", value = "enabled", havingValue = "true", matchIfMissing = false)
@Retention(RetentionPolicy.RUNTIME)
public @interface BackendAuthEnabled {
}

(感谢Wim的链接)

 类似资料:
  • 问题内容: 在Go中,如何检查对象是否响应方法? 例如,在Objective-C中,可以通过执行以下操作来实现: 问题答案: 一个简单的选择是仅使用您要检查的方法声明一个接口,然后针对您的类型进行类型断言;例如: 如果您打算对自己的类型进行任何疯狂的操作,则可能要使用该软件包。http://golang.org/pkg/reflect

  • 我试图使用create subscription API来打开一个日历事件的订阅通道,这样我们就可以在面试者对面试做出回应时收到更新。 我已经尝试了许多不同的方法来实现这个请求: 我已经完成了oauth流程,为具有以下权限范围的用户检索图形访问令牌: 使用上述范围的访问令牌,在尝试创建订阅之前,我将带有< code>{eventId}的事件添加到共享日历中,假设用户相对Id为< code>{sha

  • 问题内容: 我有以下疑问与如何在Java中创建格式日期有关。 在Java应用程序中,我必须创建一个采用以下格式的日期(该值必须是当前日期): 2015-05-26 ( yyyy-mm-dd ) 所以我知道我可以通过以下方式简单地构建一个新对象来获取当前日期: 但是如何指定日期格式? 特纳克斯 问题答案: 尝试这样: 要以yyyy-MM-dd格式格式化当前日期,您可以尝试像这样 请参考SimpleD

  • 问题内容: 我想创建一个可以容纳10个元素的空列表(或最好的方法)。 之后,我想在该列表中分配值,例如,应该显示0到9: 但是,当我运行此代码时,它会产生错误,或者在其他情况下,它只会显示(空)。 有人可以解释为什么吗? 问题答案: 你不能分配给类似的列表,除非该列表已至少已使用元素初始化。你需要使用append将元素添加到列表的末尾。。 (如果使用字典,则可以使用分配符号)。 创建一个空列表:

  • 输出字符串: 02/04/2014 现在我需要以相同的方式格式化日期(“02/04/2014”)。

  • 问题内容: 我试图通过将所有参数元素为type_id =“ 4218”的所有“ ”元素从URL解析XML文件? XML文件: 这是我的Java代码: 这段代码给了我所有元素,我不想要,我想要属性type_id =“ 4218”的所有元素! 问题答案: XPath是您的正确选择: 并遍历