springboot异步查询数据库汇总
时间: 2023-11-21 12:57:33 浏览: 91
以下是使用Spring Boot异步查询数据库的示例代码:
1.在Spring Boot应用程序的主类上添加@EnableAsync注释,以启用异步方法执行。
```java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@EnableAsync
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
2.在需要异步执行的方法上添加@Async注释。
```java
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Async
public CompletableFuture<User> findUserById(Long id) {
// 异步查询数据库
User user = userRepository.findById(id);
return CompletableFuture.completedFuture(user);
}
}
```
3.在调用异步方法时,使用CompletableFuture来处理异步结果。
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users/{id}")
public User getUserById(@PathVariable Long id) throws ExecutionException, InterruptedException {
CompletableFuture<User> future = userService.findUserById(id);
User user = future.get();
return user;
}
}
```
阅读全文