131 lines
3.7 KiB
Java
131 lines
3.7 KiB
Java
package com.zhangmeng.tools.json2Pojo;
|
|
|
|
import org.jsonschema2pojo.*;
|
|
import org.jsonschema2pojo.rules.RuleFactory;
|
|
|
|
/**
|
|
* @author : 芊芊墨客
|
|
* @version : 1.0
|
|
* @date : 2023-04-21 09:20
|
|
*
|
|
* * 源代码链接地址: https://blog.csdn.net/weixin_39651356/article/details/127155659
|
|
*/
|
|
public class MyJsonschema2pojoConfig {
|
|
|
|
/**
|
|
* 总体配置
|
|
* @param includeGetAndSetFlag 是否需要get\set代码
|
|
* @return
|
|
*/
|
|
public static GenerationConfig getGenerationConfig(boolean includeGetAndSetFlag) {
|
|
return new DefaultGenerationConfig() {
|
|
|
|
@Override
|
|
public boolean isIncludeAllPropertiesConstructor() {
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* 使用json内容进行构建javaBean
|
|
* @return
|
|
*/
|
|
@Override
|
|
public SourceType getSourceType() {
|
|
return SourceType.JSON;
|
|
}
|
|
|
|
@Override
|
|
public boolean isGenerateBuilders() { // set config option by overriding method
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public AnnotationStyle getAnnotationStyle() {
|
|
return AnnotationStyle.NONE;
|
|
}
|
|
|
|
|
|
@Override
|
|
public boolean isIncludeAdditionalProperties() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean isIncludeGetters() {
|
|
return includeGetAndSetFlag;
|
|
}
|
|
@Override
|
|
public boolean isIncludeSetters() {
|
|
return includeGetAndSetFlag;
|
|
}
|
|
@Override
|
|
public boolean isIncludeToString() {
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
public boolean isSerializable() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean isIncludeGeneratedAnnotation() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean isIncludeHashcodeAndEquals() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public String getTargetVersion() {
|
|
return "1.8";
|
|
}
|
|
|
|
@Override
|
|
public InclusionLevel getInclusionLevel() {
|
|
return InclusionLevel.ALWAYS;
|
|
}
|
|
};
|
|
}
|
|
|
|
public static GenerationConfig getGenerationConfig() {
|
|
return getGenerationConfig(false);
|
|
}
|
|
|
|
/**
|
|
* 生成的注解配置
|
|
* @param generationConfig
|
|
* @return
|
|
*/
|
|
public static MyAbstractTypeInfoAwareAnnotator getAnnotator(GenerationConfig generationConfig) {
|
|
return new MyAbstractTypeInfoAwareAnnotator(generationConfig);
|
|
}
|
|
|
|
|
|
/**
|
|
* 自定义总体配置+注解配置
|
|
* @return
|
|
*/
|
|
public static SchemaMapper getSchemaMapper(GenerationConfig config, MyAbstractTypeInfoAwareAnnotator myAbstractTypeInfoAwareAn) {
|
|
return new SchemaMapper(new RuleFactory(config, myAbstractTypeInfoAwareAn, new SchemaStore()), new SchemaGenerator());
|
|
}
|
|
|
|
/**
|
|
* 默认总体配置+注解配置
|
|
* @return
|
|
*/
|
|
public static SchemaMapper getDefaultSchemaMapper(AnnotateConfig annotateConfig) {
|
|
GenerationConfig generationConfig = getGenerationConfig();
|
|
MyAbstractTypeInfoAwareAnnotator annotator = getAnnotator(generationConfig);
|
|
annotator.setLombokAnnotFlag(annotateConfig.isLombook_enable());
|
|
annotator.setSwaggerAnnotFlag(annotateConfig.isSwagger_enable());
|
|
annotator.setMybatisPlusAnnotFlag(annotateConfig.isMybatis_plus_enable());
|
|
annotator.setJacksonAnnotFlag(annotateConfig.isJackson_enable());
|
|
return getSchemaMapper(generationConfig,annotator);
|
|
}
|
|
}
|