首页 > 解决方案 > Spring-Boot,获取方法级bean项目使用的所有注解值

问题描述

我正在使用 Kotlin 项目编写的 Spring-Boot 项目,该项目使用自定义方法级别注释,该注释在整个项目中foo调用了 String 属性。biz

@Foo(biz = "buzz")

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

标签: springspring-bootkotlin

解决方案


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

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

推荐阅读