```java
@SpringBootApplication
@EnableAsync
public class YourApplication {
// ...
}
```
```java
@Service
public class YourService {
@Async
public CompletableFuture<String> asyncMethod() {
// 需要異步執行的邏輯
// ...
return CompletableFuture.completedFuture("Async method completed");
}
}
```
在上述示例中,asyncMethod() 方法被標記為異步方法。當該方法被調用時,它將在一個單獨的執行緒中非同步地運行,並返回一個 CompletableFuture 對象,表示異步操作的結果。
使用 @Async 注解時,需要注意以下幾點:
* 異步方法必須定義在 Spring 托管的 bean 中(如服務類或組件類),以便 Spring 可以進行代理。
* 異步方法不能被同一類中的其他方法調用,否則異步功能將無效。這是因為 Spring 在執行異步方法時,實際上是通過代理將方法調用委派給異步執行器。
* 異步方法的返回值應該是 Future 或 CompletableFuture 類型,以便異步操作的結果能夠被監聽或處理。
請注意,為了使用 @Async 注解,你需要在 Spring Boot 中配置異步執行器(TaskExecutor)。默認情況下,Spring Boot 會自動配置一個基於線程池的異步執行器,你可以根據需要進行自定義配置。
```java
// 在調用異步方法時,可以得到一個 CompletableFuture 對象
CompletableFuture<String> future = yourService.asyncMethod();
// 可以在需要的時候添加回調函數處理結果
future.thenAccept(result -> {
// 處理結果
});
```