# jeesys-auto-source
**Repository Path**: jeesys/jeesys-auto-source
## Basic Information
- **Project Name**: jeesys-auto-source
- **Description**: 根据java的插入式注解处理API特性,自动生成Repository、Service类
- **Primary Language**: Java
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-12-03
- **Last Updated**: 2024-12-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# jeesys-auto-source
#### 介绍
根据java的插入式注解处理API特性,自动生成Repository、Service、DTO、controller类,可用注解有:
##### @AutoRepository 生成Repository类;
##### @AutoService 生成Service类;
##### @AutoData 是@AutoRepository、@AutoService、@AutoReq、@AutoRes、@AutoController的合体,会自动生成Repository、Service、Req、Res、Controller类;
##### @AutoClass 根据自定义模板生成类;
##### @AutoReq 自去生成Req类;
##### @AutoRes 自动生成Res类;
##### @IgnoreReq 是否在Req类中忽略字段;
##### @IgnoreRes 是否在Res类中忽略字段;
#### 使用说明
1. pom.xml中引入maven依赖:
```xml
com.jeesys.auto.source
jeesys-auto-source
1.0.0-SNAPSHOT
provided
```
2. 实体类上添加注解: @AutoReposiotry、@AutoService、@AutoReq、AutoRes
```java
import com.jeesys.auto.source.annotations.AutoRepository;
import com.jeesys.auto.source.annotations.AutoService;
@AutoRepository
@AutoService
public class User {
}
```
3. 在其他类中可引用自动生成的Repository、Service、Dto,生成的类默认是实体类名加上相应的Repository、Service、Req、Res后缀,示例:
```java
@RequiredArgsConstructor
public class UserController {
private final UserService userService;
}
```
4. pom.xml中配置插件:
```xml
org.apache.maven.plugins
maven-compiler-plugin
3.13.0
com.jeesys.auto.source
jeesys-auto-source
1.0.0-SNAPSHOT
```
#### 配置说明:
##### 自定义参数说明
```properties
#repository层包名,默认为repository
auto.source.repository_package_name=repository
#repository类对象后缀,默认为Repository
auto.source.repository_class_suffix=Repository
#service层包名,默认为service
auto.source.service_package_name=service
#service类对象后缀,默认为Service
auto.source.service_class_suffix=Service
#DTO层中的请求对象包名,默认为req.dto
auto.source.request_package_name=req.dto
#DTO层中的请求类对象后缀,默认为Req
auto.source.request_class_suffix=Req
#DTO层中的响应对象包名,默认为req.res
auto.source.response_package_name=req.res
#DTO层中的响应类对象后缀,默认为Res
auto.source.response_class_suffix=Res
#controller层包名,默认为controller
auto.source.controller_package_name=controller
#* controller层对象后缀,默认为Controller
auto.source.controller_class_suffix=Controller
#是否忽略生成request层对象,默认为false
auto.source.ignore_request=false
#是否忽略生成response层对象,默认为false
auto.source.ignore_response=false
#是否忽略controller层对象生成,默认为false
auto.source.ignore_controller=false
#是否忽略repository层对象生成,默认为false
auto.source.ignore_repository=false
#是否忽略service层对象生成,默认为false
auto.source.ignore_service=false
#repository模板文件名称,默认为repository.ftl,自定义时需将模板文件放在templates_custom目录下
auto.source.template_repository=repository.ftl
#Service模板文件名称,默认为service.ftl,自定义时需将模板文件放在templates_custom目录下
auto.source.template_service=service.ftl
#Request模板文件名称,默认为dto.req.ftl,自定义时需将模板文件放在templates_custom目录下
auto.source.template_request=dto.req.ftl
#Reponse模板文件名称,默认为dto.res.ftl,自定义时需将模板文件放在templates_custom目录下
auto.source.template_response=dto.res.ftl
#Controller模板文件名称,默认为controller.ftl,自定义时需将模板文件放在templates_custom目录下
auto.source.template_controller=controller.ftl
```
**以上参数应放在maven-compiler-plugin插件的compilerArgs中,示例**
```xml
-Aauto.source.repository_package_name=repository
-Aauto.source.template_controller=rest.ftl
```
##### 模板中内置变量说明
```properties
#要生成类的包名
packageName
#要生成类的className
className
#实体类完整名称(包含类名称)
entityFullClassName
#实体类简称(无包名)
entitySimpleClassName
#实体类所在的包名
entityPackageName
#基础包名(实体类所在的包名的上一级)
basePackageName
#Repository包名
repositoryPackageName
#Repository类名
repositoryClassName
#Service包名
servicePackageName
#Service类名
serviceClassName
#DTO请求类包名
reqPackageName
#DTO请求类类名
reqClassName
#DTO响应类包名
resPackageName
#DTO响应类类名
resClassName
#Controller包名
controllerPackageName
#Controller类名
controllerClassName
#类上的文档注释
classDocComment
#字段信息
fieldInfos
```
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request