Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取Springbean的类详细信息_Java_Spring - Fatal编程技术网

Java 获取Springbean的类详细信息

Java 获取Springbean的类详细信息,java,spring,Java,Spring,我使用下面的代码获取应用程序中的所有bean Map<String, MyBuilder> allBuilders = context.getBeansOfType(MyBuilder.class); 使用getBeansOfType()方法可以得到类型为“getBeansOfType”的“builder1”bean。但是我如何获得这个bean所在的实际超类呢 对于提供的示例,我希望类MyService及其注释成为输出 理想情况下,我希望从上述代码中获得以下所有信息 MyServi

我使用下面的代码获取应用程序中的所有bean

Map<String, MyBuilder> allBuilders = context.getBeansOfType(MyBuilder.class);
使用getBeansOfType()方法可以得到类型为“getBeansOfType”的“builder1”bean。但是我如何获得这个bean所在的实际超类呢

对于提供的示例,我希望类MyService及其注释成为输出

理想情况下,我希望从上述代码中获得以下所有信息

  • MyService类中的MyAnnotation参数(name=“one”)
  • 虚拟参数(description=“test”)
  • MyBuilderbean对象

  • 您不能假设您的
    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接受的答案非常旧,现在肯定有更新的解决方案。另一个答案看起来不完整。