【问题标题】:How does Gradle 'war' plugin know to invoke Spring Framework?Gradle 'war' 插件如何知道调用 Spring Framework?
【发布时间】:2017-05-08 18:15:45
【问题描述】:

我环顾四周,似乎找不到这个问题的直接答案。 Gradle 'war' 插件如何知道如何以及何时调用 Spring Framework?

例如,当使用war插件任务编译项目(如here)时,什么时候调用Spring框架来处理@Controller@RequestMapping注解产生正确编译的小服务程序? Gradle 是硬连线来识别 Spring Framework 的吗?

非常感谢!

【问题讨论】:

  • war 插件将您的类文件打包到可部署的 Web 存档中。它由您的 Web 提供程序(即 Tomcat)解压缩,然后通过您的各种属性和 XML 文件调用。

标签: java spring gradle war


【解决方案1】:

这通常发生在运行时,通过类路径扫描或@Configuration bean。存在注释处理器,但我不知道任何可以将 Spring 注释转换为 XML 配置文件的其他 Spring 配置系统。

在您的示例中,扩展 AbstractAnnotationConfigDispatcherServletInitializer 的类由 Servlet 3.0+ 容器(在本例中为码头)自动检测,因为该容器首先读取 WAR。

ServletInitializer 然后继续启动 Spring,使用提供的类作为根; Spring 检查所有注释并构建Environment 和所有bean。

如您所见,这与 Gradle 或任何其他构建系统没有任何关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-08
    • 2017-09-21
    • 2017-06-10
    • 2019-02-18
    • 2017-09-23
    • 1970-01-01
    • 2019-03-23
    • 2018-10-30
    相关资源
    最近更新 更多