SpringMVC多模塊中,如何擴展swagger模塊

大部分集成swagger項目,都是在項目中修改配置文件,新建swagger配置類。其實更合適的做法是新建一個swagger模塊,需要加入swagger的模塊只要引入這個模塊就可以了。

1. 在需要引入swagger模塊的模塊,pom文件引入swagger依賴

com.imooc imooc-single-mvc-swagger 0.0.1-SNAPSHOT

2. 在類路徑下面resource文件夾下,新建swagger.properties

swagger.basePackage=com.imooc.web.controller

swagger.title=mytitle

3.在web.xml中,加入前端控制器的swagger配置。

org.springframework.web.servlet.DispatcherServlet

(注意,DispatcherServlet的url-pattern不能是*.action)

classpath:spring/springmvc.xml,classpath:spring/springmvc-swagger.xml

關于如何新建一個swagger模塊,可以參考以下的鏈接

https://my.oschina.net/wangmengjun/blog/907679

本人做了如下修改,新建了SwaggerInfo類,去讀取配置文件swagger.properties里的包掃描路徑和title等一些需要定制化的數(shù)據(jù),因為各個模塊的屬性是不一樣的;

SwaggerConfig: 會去swaggerInfo里拿包路徑。

@Bean
??? public Docket controllerApi() {
??????? Docket docket = new Docket(DocumentationType.SWAGGER_2)
??????????????? .groupName(swaggerInfo.getGroupName())
??????????????? .apiInfo(apiInfo());
??????? ApiSelectorBuilder builder = docket.select();
??????? if (!StringUtils.isEmpty(swaggerInfo.getBasePackage())) {
??????????? builder = builder.apis(RequestHandlerSelectors.basePackage(swaggerInfo.getBasePackage()));
??????? }
??????? if (!StringUtils.isEmpty(swaggerInfo.getAntPath())) {
??????????? builder = builder.paths(PathSelectors.ant(swaggerInfo.getAntPath()));
??????? }

??????? return builder.build();
??? }

最后總結一下,擴展swagger模塊的做法體現(xiàn)了軟件設計原則中的開閉原則,對擴展開放,對修改關閉。在實踐中或多或少會運用到一些設計原則,只是沒意識到,還未上升到理論高度,逐漸積累中。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容