- 通过一个注解来动态完成controller、service、dao等相关类信息的生成与注册到spring容器
- 消除三层模型冗余代码、统一接口标准、专注于数据模型
- 开箱即用,提供常用的5种组件(controller、service、serviceImpl、dao、viewObject)与5种持久层方案(spring-boot-starter-data-jpa/hibernate、MyBatis-plus、spring-boot-starter-data-solr、spring-boot-starter-data-mongodb、spring-boot-starter-data-elasticsearch)
- 基于java8、ASM、spring-boot2.0+、spring-boot-starter-data
- 示例项目
- 许可证使用 Apache-2.0
默认扫描[启用注解]所在包及其后代包(可通过配置覆盖)
默认的持久化方案为MyBatis-plus(可通过配置或者注解覆盖)
默认使用单属性主键
MyBatis-plus、jpa、hibernate默认主键为Long,Solr、Elasticsearch默认主键为String,MongoDB默认主键为ObjectId(可通过自定义代码模板来覆盖)
默认生成全部5种开箱即用的组件(controller、service、serviceImpl、dao、viewObject),并将controller、serviceImpl、dao注入spring容器(可通过配置或者注解覆盖)
一 src.main.java.io.github.woodenlock.gaia
一 annotation:项目相关注解
一 DynamicModule.java:用于标注持久化实体映射对象参与动态模块功能的生成
一 EnableDynamicModules.java:启用gaia动态模块的功能
一 GenerateComponent.java:手动覆盖持久化实体映射对象特定组件的执行策略
一 base:默认使用的实现模板基类
一 common:一些通用的定义
一 GenerateConst:默认持久化方案、组件、配置的名称定义
一 function:函数式接口定义
一 generation:类生成器接口及其默认的实现
一 registrar:spring bean注册器接口及其默认的实现
一 util:常用简单工具类
一 web:默认controller模板使用的相关web视图定义
一 DynamicModuleProperties.java:配置属性对象
一 DynamicModuleRegistrar.java:整合spring的注册器
一 ModuleTypeCache.java:实际动态组件的组装及其缓存
一 src.main.resources
一 META-INF/spring-configuration-metadata.json:配置提示
一 application.properties:默认开箱即用的配置