【发布时间】:2026-02-03 10:55:02
【问题描述】:
我正在开发一个用 Kotlin 编写的 Spring-Boot 项目,该项目使用自定义方法级别注释 foo,在整个项目中都有一个名为 biz 的字符串属性。
@Foo(biz = "buzz")
Spring-Boot 或 Kotlin 有没有办法获取 foo 的 biz 属性中使用的所有值的列表?
【问题讨论】:
标签: spring spring-boot kotlin
我正在开发一个用 Kotlin 编写的 Spring-Boot 项目,该项目使用自定义方法级别注释 foo,在整个项目中都有一个名为 biz 的字符串属性。
@Foo(biz = "buzz")
Spring-Boot 或 Kotlin 有没有办法获取 foo 的 biz 属性中使用的所有值的列表?
【问题讨论】:
标签: spring spring-boot kotlin
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>()
}
}
}```
【讨论】:
您可以从上下文中获取所有的 spring bean。遵循本教程:
https://www.baeldung.com/spring-show-all-beans
然后您可以使用反射来获取每个 bean 的注释参数。这里有一个例子:
【讨论】: