MyBatis Generator如何添加swagger注解
时间: 2024-01-27 21:03:54 浏览: 143
您可以通过自定义MyBatis Generator插件来实现为生成的Java类添加Swagger注解。具体操作可以参考以下步骤:
1. 首先创建一个MyBatis Generator插件项目,可以参考MyBatis Generator官方文档中的Creating a Plugin。
2. 实现PluginAdapter接口,重写getCompilationUnits()方法,该方法可以获取到生成的Java类的元数据,并且可以通过修改CompilationUnit的内容来为其添加注解。可以参考以下代码示例:
```
public class SwaggerPlugin extends PluginAdapter {
private Set<String> mappers = new HashSet<String>();
@Override
public boolean validate(List<String> warnings) {
return true;
}
@Override
public List<GeneratedJavaFile> contextGenerateAdditionalJavaFiles(IntrospectedTable introspectedTable) {
String targetPackage = getContext().getJavaClientGeneratorConfiguration().getTargetPackage();
String targetProject = getContext().getJavaClientGeneratorConfiguration().getTargetProject();
List<GeneratedJavaFile> files = new ArrayList<>();
CompilationUnit cu = new CompilationUnit(targetPackage, "SwaggerConfiguration");
// 添加Swagger注解
cu.addImportedType(new FullyQualifiedJavaType("io.swagger.annotations.Api"));
cu.addImportedType(new FullyQualifiedJavaType("org.springframework.context.annotation.Bean"));
cu.addImportedType(new FullyQualifiedJavaType("org.springframework.context.annotation.Configuration"));
cu.addImportedType(new FullyQualifiedJavaType(" springfox.documentation.builders.PathSelectors"));
cu.addImportedType(new FullyQualifiedJavaType(" springfox.documentation.builders.RequestHandlerSelectors"));
cu.addImportedType(new FullyQualifiedJavaType(" springfox.documentation.spi.DocumentationType"));
cu.addImportedType(new FullyQualifiedJavaType(" springfox.documentation.spring.web.plugins.Docket"));
cu.addImportedType(new FullyQualifiedJavaType(" springfox.documentation.swagger2.annotations.EnableSwagger2"));
cu.addAnnotation("@Configuration");
cu.addAnnotation("@EnableSwagger2");
cu.addOrReplaceImport(new FullyQualifiedJavaType("java.io.Serializable"));
cu.getTypes().forEach(t -> {
// 只针对Mapper接口生成Swagger注解
if (t instanceof Interface && t.getFullyQualifiedNameWithoutTypeParameters().endsWith("Mapper")) {
t.addAnnotation("@Api(tags=\"" + introspectedTable.getTableConfiguration().getTableName() + "\")");
}
});
files.add(new GeneratedJavaFile(cu, targetProject, new DefaultJavaFormatter()));
return files;
}
}
```
3. 将插件项目打成jar包,并将该jar包放入MyBatis Generator的classpath中。
4. 修改generatorConfig.xml文件,为生成的Java类添加对应的插件,例如:
```
<context id="test">
<plugin type="com.example.mybatis.generator.SwaggerPlugin"/>
...
</context>
```
5. 重新运行MyBatis Generator即可生成包含Swagger注解的Java类。
需要注意的是,添加Swagger注解需要开启相应的依赖,具体可以参考Swagger官方文档。另外,如果您使用的是MyBatis Generator Maven插件,则可以将插件项目打成maven插件,并在pom.xml中配置插件即可。
阅读全文