我正在编写一个程序来检查学生提交的源代码是否符合练习说明中给出的所有要求。
现在,如果必须从XML文件配置某些bean,如何在不解析XML配置文件的情况下检查它?我可以在运行时从spring容器中获取相关信息吗?
谢谢!
答案 0 :(得分:1)
bean的来源如下:
BeanDefinition beanDefinition = context.getBeanDefinition("someBean");
beanDefinition.getResourceDescription(); // Will describe if the XML file is the source
示例:
为了清晰起见而删除的XML文件,名为 app-config.xml :
<?xml version="1.0" encoding="UTF-8"?>
<beans ...>
<bean name="someBean" class="com.stackoverflow.aopdemo.service.StudentImpl"
/>
</beans>
显示用法的骨架程序:
@SpringBootApplication
@ImportResource("classpath:app-config.xml")
public class DemoApplication {
@Autowired
private AnnotationConfigApplicationContext context;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@PostConstruct
public void init() {
BeanDefinition beanDefinition = context.getBeanDefinition("someBean");
String resourceDescription = beanDefinition.getResourceDescription();
System.out.println("Resource Description = "+resourceDescription);
}
}
生成以下输出(显示xml文件名):
Resource Description = class path resource [app-config.xml]