【问题标题】:Spring-Boot, Get all annotation values used by a method level bean projectSpring-Boot,获取方法级bean项目使用的所有注解值
【发布时间】:2026-02-03 10:55:02
【问题描述】:

我正在开发一个用 Kotlin 编写的 Spring-Boot 项目,该项目使用自定义方法级别注释 foo,在整个项目中都有一个名为 biz 的字符串属性。

@Foo(biz = "buzz")

Spring-Boot 或 Kotlin 有没有办法获取 foobiz 属性中使用的所有值的列表?

【问题讨论】:

    标签: spring spring-boot kotlin


    【解决方案1】:

    ListableBeanFactory 上有一个函数,它可以检索所有带有给定注解的 bean 并返回带有 bean 的映射 - 键是 bean 名称和值 bean 实例。 Kotlin 示例:

    @Configuration
    class AnnotatedBeansCounterConfig(
        context: AbstractApplicationContext
    ) {
        init {
            context.getBeansWithAnnotation(Foo::class.java).forEach { beanName, bean ->
                val annotation = bean::class.findAnnotation<Foo>()
            }
        }
    }```
    

    【讨论】:

      【解决方案2】:

      您可以从上下文中获取所有的 spring bean。遵循本教程:

      https://www.baeldung.com/spring-show-all-beans

      然后您可以使用反射来获取每个 bean 的注释参数。这里有一个例子:

      Get value of a parameter of an annotation in Java

      【讨论】:

        最近更新 更多