JAsync 项目使用教程
项目地址:https://gitcode.com/gh_mirrors/ja/jasync
1. 项目目录结构及介绍
JAsync 项目的目录结构如下:
jasync/
├── jasync-agent/
├── jasync-asm/
├── jasync-core/
├── jasync-reactive/
├── jasync-runtime/
├── jasync-spec/
├── jasync-spring/
├── jasync-test/
├── jasync-utils/
├── .gitignore
├── LICENSE
├── README.md
├── README_CN.md
├── debug-off.png
├── debug-on.png
└── pom.xml
目录介绍
- jasync-agent/:包含与 Java 代理相关的代码。
- jasync-asm/:包含与 ASM 字节码操作相关的代码。
- jasync-core/:核心库,包含 JAsync 的主要功能实现。
- jasync-reactive/:与 Reactor 库集成的实现。
- jasync-runtime/:运行时相关代码。
- jasync-spec/:规范和接口定义。
- jasync-spring/:与 Spring 框架集成的代码。
- jasync-test/:测试代码。
- jasync-utils/:工具类和辅助代码。
- .gitignore:Git 忽略文件配置。
- LICENSE:项目许可证文件。
- README.md:英文版的项目介绍和使用说明。
- README_CN.md:中文版的项目介绍和使用说明。
- debug-off.png 和 debug-on.png:调试模式下的示例图片。
- pom.xml:Maven 项目配置文件。
2. 项目启动文件介绍
JAsync 项目没有明确的“启动文件”,因为它是一个库项目,主要用于提供异步编程的支持。项目的核心功能是通过注解处理器和字节码操作实现的,因此没有传统的启动入口。
如果你需要在项目中使用 JAsync,你需要在你的项目中引入 JAsync 的依赖,并在代码中使用 JAsync 提供的注解和 API。例如:
@RestController
@RequestMapping("/employees")
public class MyRestController {
@Inject
private EmployeeRepository employeeRepository;
@Inject
private SalaryRepository salaryRepository;
@Async()
private JPromise<Double> _getEmployeeTotalSalaryByDepartment(String department) {
double money = 0.0;
Mono<List<Employee>> empsMono = employeeRepository.findEmployeeByDepartment(department);
JPromise<List<Employee>> empsPromise = Promises.from(empsMono);
for (Employee employee : empsPromise.await()) {
Salary salary = Promises.from(salaryRepository.findSalaryByEmployee(employee.getId())).await();
money += salary.total;
}
return JAsync.just(money);
}
@GetMapping("/{department}/salary")
public Mono<Double> getEmployeeTotalSalaryByDepartment(@PathVariable String department) {
return _getEmployeeTotalSalaryByDepartment(department).unwrap(Mono.class);
}
}
3. 项目的配置文件介绍
JAsync 项目的主要配置文件是 pom.xml
,用于配置 Maven 项目的依赖和构建信息。以下是 pom.xml
的主要内容:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.github.vipcxj</groupId>
<artifactId>jasync</artifactId>
<version>0.1.9</version>
<packaging>pom</packaging>
<dependencies>
<!-- JAsync 核心库 -->
<dependency>
<groupId>io.github.vipcxj</groupId>
<artifactId>jasync-core</artifactId>
<version>0.1.9</version>
<scope>provided</scope>
</dependency>
<!-- JAsync Reactive 实现 -->
<dependency>
<groupId>io.github.vipcxj</groupId>
<artifactId>jasync-reactive</artifactId>
<version>0.1.9</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>io.github.vipcxj</groupId>
<artifactId>jasync-core</artifactId>
<version>0.1.9</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
</project>
配置文件介绍
- dependencies:定义了项目的依赖,包括 JAsync 核心库和 Reactive 实现。
- build:配置了 Maven 编译插件,确保注解处理器能够正确处理 JAsync 的注解。
通过以上配置,你可以在项目中使用 JAsync 提供的异步编程功能。