要查看 Spring Boot 容器内 bean 的成员变量,可以使用反射来获取 bean 的所有成员变量,并使用相应的方法来获取和操作这些成员变量。\n\n首先,使用 ApplicationContext 来获取 Spring Boot 容器:\n\njava\n@Autowired\nprivate ApplicationContext applicationContext;\n\n\n然后,通过 applicationContext 获取 bean 的定义:\n\njava\nBeanDefinition beanDefinition = applicationContext.getBeanFactory().getBeanDefinition("beanName");\n\n\n其中,"beanName" 是要查看的 bean 的名称。\n\n接下来,使用反射来获取 bean 的所有成员变量:\n\njava\nClass<?> beanClass = Class.forName(beanDefinition.getBeanClassName());\nField[] fields = beanClass.getDeclaredFields();\n\n\n最后,可以通过遍历 fields 数组来获取和操作 bean 的成员变量:\n\njava\nfor (Field field : fields) {\n // 获取成员变量的名称和类型\n String fieldName = field.getName();\n Class<?> fieldType = field.getType();\n \n // 使用反射来获取和操作成员变量的值\n field.setAccessible(true);\n Object fieldValue = field.get(beanInstance);\n \n // 打印成员变量的名称和值\n System.out.println(fieldName + ": " + fieldValue);\n}\n\n\n需要注意的是,上述代码中的 "beanInstance" 是指已经创建好的 bean 实例,可以通过 applicationContext 来获取:\n\njava\nObject beanInstance = applicationContext.getBean("beanName");\n\n\n这样就可以查看 Spring Boot 容器内 bean 的成员变量了。

Arthas 查看 Spring Boot 容器内 Bean 成员变量 - 使用反射获取和操作

原文地址: https://www.cveoy.top/t/topic/p7iN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录