在作Spring MVC 整合swagger的時候,遇到的兩個問題:html
第一個問題spring
在網上找了一些Spring MVC 和Swagger的例子,照着一步步的配置,結果,到最後,項目都起來了,沒有任何問題,express
可是就是沒有出現網上的效果,沒有出現Controller裏寫的那些API說明,json
效果是這樣的:api
緣由:學習
在Spring的配置文件中,對包管理的配置是這樣寫的:url
1 <context:component-scan base-package="com.koonet.qxtn" use-default-filters="true"> 2 <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> 3</context:component-scan>
也就是說,這裏聲明瞭Spring來管理指定包裏的註解,spa
可是呢,Spring不認Swagger的註解,因此,才致使出現上面的狀況。code
解決:component
將指定Spring管理註解的去掉,直接寫成這樣:
1 <context:component-scan base-package="com.koonet.qxtn"/>
這樣的話,swagger的註解也能被引入的swagger相關類識別,最終完成一系類操做,展示出咱們想要的。(這裏只是個人推測)
第二個問題
項目配置沒有問題,啓動不報錯,可是頁面顯示的是
Can't read swagger JSON from http://localhost:8080/swagger/api-docs
字面意思好理解,就是沒法讀取swagger的json數據,
那麼爲何會這樣呢?
修改swagger的index.html裏的
url = "http://petstore.swagger.io/v2/swagger.json";
是修改爲
url = "http://{ip}:{port}/{projectName}/api-docs";
可是呢,使用IDEA部署的項目是沒有項目名的,也就是說,在本地部署的話,直接寫成
url = "http://localhost:8080/api-docs";
就沒有問題了。
這是我在學習使用swagger時,遇到的兩個問題,這裏作一個記錄。