gpt4 book ai didi

java - 如何从条件中获取带注释的类

转载 作者:行者123 更新时间:2023-12-01 19:01:40 25 4
gpt4 key购买 nike

我已经实现了一个条件,用于检查匹配中提供的AnnotatedTypeMetadata是否是AnnotationMetadataReadingVisitor的实例,并且然后检查 cron.[className.makePretty()] 是否在配置中设置。这让我可以做这样的事情:

@Condition(TaskConditional.class)
public class DoImportantStuffTask {
@Scheduled(cron = "${cron.do-important-stuff}")
public void run() {
...

并且仅当在配置中设置“cron.do-important-stuff”时才实例化。该条件还检查 cron.enabled 是否为 true,以及 cron.host 是否已设置且等于当前主机名。

Spring 5.2 的文档指出:

As of Spring Framework 5.2, this class has been replaced by SimpleAnnotationMetadataReadingVisitor for internal use within the framework, but there is no public replacement for AnnotationMetadataReadingVisitor

有没有办法在 Spring 5.2 的条件匹配方法中仍然获取带注释的类 (DoImportantStuffTask.class) 的名称?

最佳答案

您现在可以使用 AnnotatedTypeMetadata 中的 getAnnotations() 获取注释的来源。因此为了获得我所做的类名

String annotatedClasss = md.getAnnotations().stream()
.map(a -> a.getSource().toString())
.distinct()
.findAny();

关于java - 如何从条件中获取带注释的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59628787/

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