Java 如何验证spring applicationContext.xml文件

Java 如何验证spring applicationContext.xml文件,java,spring,Java,Spring,我在applicationContext.xml文件中定义了几个bean,发现如果我在bean的名称上犯了错误(比如输入错误),spring不会抱怨任何事情,而是继续加载invalidate配置。spring不是自动进行检查吗?如何在applicationContext.xml文件上实现模式验证?谢谢。为了避免在spring上下文中出现错误,我建议您使用一个检查其内容的插件,例如或。通过这种方式,插件在开发过程中验证您的spring上下文,您可以在应用程序执行之前发现错误。IntelliJ ID

我在applicationContext.xml文件中定义了几个bean,发现如果我在bean的名称上犯了错误(比如输入错误),spring不会抱怨任何事情,而是继续加载invalidate配置。spring不是自动进行检查吗?如何在applicationContext.xml文件上实现模式验证?谢谢。

为了避免在spring上下文中出现错误,我建议您使用一个检查其内容的插件,例如或。通过这种方式,插件在开发过程中验证您的spring上下文,您可以在应用程序执行之前发现错误。

IntelliJ IDEA对spring有一个很好的帮助,包括:

  • 检测断开的引用(bean不存在,类型错误等)
  • 按下Ctrl+Space时完成bean名称(同时将列表缩小到仅按类型匹配的bean)
  • 在使用
    @Resource
    /
    @Autowired
    时发现丢失/重复的bean,并且在运行时自动连线失败
  • Java和应用程序上下文XML之间的快速导航
  • …和批次更多

我也强烈推荐写《春天的烟》。它不需要测试任何东西,只需要上下文启动(你会惊讶,它发现了多少错误)。

除了这个问题,我在检测重复的bean id时遇到了一些问题,这些bean id会被无意中覆盖,但最终我发现了这个开源项目,它可以帮助您编写JUnit单元测试来检测这些问题。它非常容易使用,解决了我的问题,它被称为

如果文件无效,Spring将不会加载它。如果它加载它,它是有效的。它自己进行模式级和逻辑级验证。你需要给我们一个具体的例子来说明你认为它做错了什么。在下面的代码中,我实际上输入了错误的类名,应该是“com.xyz.services.serviceAttributeConfigInitializer”,但是Spring不会“抱怨任何异常”也不会启动服务。那不是真的。它会抱怨,而且会抱怨很多。您一定没有查看正确的日志文件。我希望能够在junit测试中进行验证。团队中并不是每个人都使用一个好主意,让Spring加载xml文件非常耗时——2到3分钟并不少见。我希望编写代码手动检查bean,而不是让Spring自动检查,这样我就可以掌握控制权……这可能吗?我不知道,我从来没有这样做过。我喜欢在开发期间进行验证,所以在执行期间不会出现任何问题。关键是Spring试图解析上下文,如果出现任何错误,它将无法解析,因此它会抛出相关的异常……但是,我很好奇,您到底想做什么?你可以发布一个例子吗?我如何使用iTeglation测试测试上下文启动?你有任何例子或链接吗?谢谢。请阅读我提供的资料。一切都在那里解释。让一个测试运行大部分应用程序上下文XML文件将有很大的价值,即使没有实现实际的测试。