Skip to content

Commit 44b58d5

Browse files
committed
#34 希望能增加ignoredParameterTypes的配置功能!
1 parent e7e4f6a commit 44b58d5

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

README.md

+16
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,22 @@ swagger.ui-config.show-request-headers=true
260260
swagger.ui-config.request-timeout=5000
261261
```
262262

263+
### ignoredParameterTypes配置(1.6.0 + 支持)
264+
265+
```properties
266+
# 基础配置
267+
swagger.ignored-parameter-types[0]=com.didispace.demo.User
268+
swagger.ignored-parameter-types[1]=com.didispace.demo.Product
269+
270+
# 分组配置
271+
swagger.docket.aaa.ignored-parameter-types[0]=com.didispace.demo.User
272+
swagger.docket.aaa.ignored-parameter-types[1]=com.didispace.demo.Product
273+
```
274+
275+
> 该参数作用:
276+
> Q. Infinite loop when springfox tries to determine schema for objects with nested/complex constraints?
277+
> A. If you have recursively defined objects, I would try and see if providing an alternate type might work or perhaps even ignoring the offending classes e.g. order using the docket. ignoredParameterTypes(Order.class). This is usually found in Hibernate domain objects that have bidirectional dependencies on other objects.
278+
263279
## 贡献者
264280

265281
- [程序猿DD-翟永超](https://github.com/dyc87112/)

src/main/java/com/spring4all/swagger/SwaggerAutoConfiguration.java

+11
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,12 @@ public List<Docket> createRestApi(SwaggerProperties swaggerProperties) {
117117
Predicates.or(basePath)
118118
)
119119
).build();
120+
121+
/** ignoredParameterTypes **/
122+
Class[] array = new Class[swaggerProperties.getIgnoredParameterTypes().size()];
123+
Class[] ignoredParameterTypes = swaggerProperties.getIgnoredParameterTypes().toArray(array);
124+
docket.ignoredParameterTypes(ignoredParameterTypes);
125+
120126
configurableBeanFactory.registerSingleton("defaultDocket", docket);
121127
docketList.add(docket);
122128
return docketList;
@@ -180,6 +186,11 @@ public List<Docket> createRestApi(SwaggerProperties swaggerProperties) {
180186
)
181187
.build();
182188

189+
/** ignoredParameterTypes **/
190+
Class[] array = new Class[docketInfo.getIgnoredParameterTypes().size()];
191+
Class[] ignoredParameterTypes = docketInfo.getIgnoredParameterTypes().toArray(array);
192+
docket.ignoredParameterTypes(ignoredParameterTypes);
193+
183194
configurableBeanFactory.registerSingleton(groupName, docket);
184195
docketList.add(docket);
185196
}

src/main/java/com/spring4all/swagger/SwaggerProperties.java

+6
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ public class SwaggerProperties {
3434
/**服务条款URL**/
3535
private String termsOfServiceUrl = "";
3636

37+
/**忽略的参数类型**/
38+
private List<Class> ignoredParameterTypes = new ArrayList<>();
39+
3740
private Contact contact = new Contact();
3841

3942
/**swagger会解析的包路径**/
@@ -112,6 +115,9 @@ public static class DocketInfo {
112115

113116
private List<GlobalOperationParameter> globalOperationParameters;
114117

118+
/**忽略的参数类型**/
119+
private List<Class> ignoredParameterTypes = new ArrayList<>();
120+
115121
}
116122

117123
@Data

0 commit comments

Comments
 (0)