领域模型生成插件
# 简介
领域模型生成插件,如果有使用过Mybatis-Plus根据数据库生成实体类插件,便不难理解,前者是根据数据库表结构生成领域模型,本插件是根据索引结构生成领域模型,是根据实体类生成索引结构的逆向工程.
# 使用步骤
配置 indexName: 需要被生成领域模型的索引名称 destPackage: 生成模型的目标包路径 enableUnderlineToCamelCase: 是否开启下划线转驼峰 默认开启 enableLombok: 是否开启lombok
注入插件
框架已将自动生成器注册为Bean通过Spring进行管理,可直接通过Spring提供的@Autowired注解或@Resource注入插件
- 调用生成
通过注入的bean直接调用generate方法即可完成生成,生成后可至配置的destPackage目录下查看生成的领域模型
- 微调
由于索引结构与实体类的映射关系不是完全一一对应的,例如索引中的嵌套类型在JAVA中可能是List<?>,也可能是Set<?>,类似这种情况实际上通过技术手段无法完全规避, 所以生成的实体类并不一定100%符合预期,需要使用者对其进行微调,但无论如何,这都比用户从0开始手动处理要快得多,这也是本插件存在的意义和价值,另外针对包的引入 也需要用户自行决定引入,本插件并未进行自动生成和干预.
# 代码示例
@SpringBootTest(classes = TestEasyEsApplication.class)
public class GeneratorTest {
@Resource
private Generator generator;
/**
* 测试根据已有索引生成领域模型
*/
@Test
public void testGenerate() {
IndexName indexName = Document.class.getAnnotation(IndexName.class);
GeneratorConfig config = new GeneratorConfig();
// 将生成的领域模型放置在当前项目的指的包路径下
String destPackage = "org.dromara.easyes.test.generated";
config.setDestPackage(destPackage);
config.setIndexName(indexName.value());
Boolean success = generator.generate(config);
Assertions.assertTrue(success,"generate failed!");
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
帮助我们改善此文档 (opens new window)
上次更新: 2025/02/05