Java 获取Springbean的类详细信息
我使用下面的代码获取应用程序中的所有beanJava 获取Springbean的类详细信息,java,spring,Java,Spring,我使用下面的代码获取应用程序中的所有bean Map<String, MyBuilder> allBuilders = context.getBeansOfType(MyBuilder.class); 使用getBeansOfType()方法可以得到类型为“getBeansOfType”的“builder1”bean。但是我如何获得这个bean所在的实际超类呢 对于提供的示例,我希望类MyService及其注释成为输出 理想情况下,我希望从上述代码中获得以下所有信息 MyServi
Map<String, MyBuilder> allBuilders = context.getBeansOfType(MyBuilder.class);
使用getBeansOfType()方法可以得到类型为“getBeansOfType”的“builder1”bean。但是我如何获得这个bean所在的实际超类呢
对于提供的示例,我希望类MyService及其注释成为输出
理想情况下,我希望从上述代码中获得以下所有信息
您不能假设您的
myservice
bean实际上是myservice
的一个类。如果要使用100%确定的方法来执行此操作,请将类存储在变量中:
@MyAnnotation(name = "one")
public class MyService{
Class<MyService> clss = MyService.class;
@Dummy(description = "test")
public MyBuilder builder1() {
return someValue;
}
}
@MyAnnotation(name=“one”)
公共类MyService{
Class clss=MyService.Class;
@假人(描述=“试验”)
公共MyBuilder构建器1(){
返回一些值;
}
}
然后您就可以访问该类,并可以像平常一样使用反射来读取注释
这不是最好的解决方案,我认为通常您会依赖于扩展Springs注释或使用AspectJ,而不是手动解释注释。您不能假设您的
myservice
bean实际上是myservice
的一类。如果要使用100%确定的方法来执行此操作,请将类存储在变量中:
@MyAnnotation(name = "one")
public class MyService{
Class<MyService> clss = MyService.class;
@Dummy(description = "test")
public MyBuilder builder1() {
return someValue;
}
}
@MyAnnotation(name=“one”)
公共类MyService{
Class clss=MyService.Class;
@假人(描述=“试验”)
公共MyBuilder构建器1(){
返回一些值;
}
}
然后您就可以访问该类,并可以像平常一样使用反射来读取注释
这并不是最好的解决方案,我认为通常您会依赖于扩展Springs注释或使用AspectJ,而不是手动解释注释。不太清楚“父类”是什么意思。看起来,您不是指bean的实际父类(就Java而言),而是指创建bean的方法所在的类?或者bean的工厂方法所在的配置类?@DanielBK更新了这个问题。我想得到bean实际所在的类。也许这有帮助:@Shafiul接受的答案非常旧,现在肯定有更新的解决方案。另一个答案看起来不完整。不太清楚你所说的“父类”是什么意思。看起来,您不是指bean的实际父类(就Java而言),而是指创建bean的方法所在的类?或者bean的工厂方法所在的配置类?@DanielBK更新了这个问题。我想得到bean实际所在的类。也许这有帮助:@Shafiul接受的答案非常旧,现在肯定有更新的解决方案。另一个答案看起来不完整。