2017-05-08 27 views
0

我環顧四周,我似乎無法找到這個問題的直接答案。 Gradle'war'插件如何知道如何以及何時調用Spring框架?Gradle'war'插件如何知道調用Spring框架?

例如,使用war插件任務編譯項目(如here),在什麼點時,Spring框架調用以處理@Controller@RequestMapping註釋產生正確的編譯的servlet? Gradle是否能夠識別Spring框架?

非常感謝!

+1

戰爭插件將您的類文件打包到可部署的Web歸檔中。它由您的Web提供程序(如Tomcat)解壓縮,並通過您的各種屬性和XML文件在該位置進行調用。 – Compass

回答

2

通常會在運行時發生,通過類路徑掃描或通過@Configuration bean。存在註釋處理器,但我不知道任何可以將Spring註釋轉換爲其他Spring配置系統的XML配置文件的註釋處理器。

在您的示例中,擴展爲AbstractAnnotationConfigDispatcherServletInitializer的類由Servlet 3.0+容器(本例中爲jetty)自動檢測,因爲該容器首先讀取WAR。

ServletInitializer然後繼續旋轉起來,使用提供的類作爲根; Spring會檢查所有的註釋,並建立Environment和所有的bean。

如您所見,這與Gradle或任何其他構建系統沒有任何關係。