# data-plus
**Repository Path**: LamTong/data-plus
## Basic Information
- **Project Name**: data-plus
- **Description**: Pluggable Annotation Processing API 示例程序。
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2023-05-08
- **Last Updated**: 2023-05-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## Data-Plus
> `Data-Plus` 是 Pluggable Annotation Processing API 示例程序.
---
### Pluggable Annotation Processing API 简介
> 该 API 是 JSR 269 提供的一台标准 API (Pluggable Annotation Processing) 来处理 Annotations,该 API 在编译期间而不是
> 运行期间处理注解, 相当于是编译器的一个插件, 因此称为插件式注解处理. 若注解处理器处理注解时产生了新的 Java 代码,
> 编译器会再调用一次注解处理器, 直到没有产生新代码为止. 每执行一次处理称为一个 `round`. 整个注解处理过程可以看做一个
> `round` 序列. JSR 269 主要被设计称为针对 Tools 或者容器的 API.
---
#### 使用步骤
1. 自定义 Annotation Processor, 继承 javax.annotation.processing.AbstractProcessor.
2. 自定义注解, 需要指定 RetentionPolicy.SOURCE.
3. 自定义 Annotation Processor 中使用 javax.annotation.processing.SupportedAnnotationTypes 指定自定义注解.
4. 自定义 Annotation Processor 使用 javax.annotation.processing.SupportedSourceVersion 指定编译版本以及编译参数.
> 【注意】: 该 API 只能用于生成新文件, 不能用于修改现有文件.
---
### Data-Plus 说明
> `Data-Plus` 基于 Pluggable Annotation Processing API, 实现类似于 **Lombok** 作用,
> 在程序编译之前向目标类注入特定的目标方法, 达到简化开发流程.
> 目前 `Data-Plus` 提供注解如下:
> * @Getter
> * @Setter
> * @NoArgsConstructor
> * @AllArgsConstructor
> * @ToString
> * @Hello
---
### 写在最后
> `Data-Plus` 只是 `Pluggable Annotation Processing API` 的示例程序, 仅做学习记录与参考.
---