springboot跨项目调用接口
时间: 2023-07-25 18:03:41 浏览: 54
在Spring Boot中,使用RESTful API实现跨项目调用的方式比较常见。下面给出一个简单的示例:
假设有两个项目,一个是提供方项目,另一个是调用方项目。提供方项目中有一个接口提供了查询用户信息的服务,调用方项目需要调用这个服务来获取用户信息。
提供方项目中的UserController.java代码如下:
```java
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
}
```
调用方项目中的UserService.java代码如下:
```java
@Service
public class UserService {
@Autowired
private RestTemplate restTemplate;
public User getUserById(Long id) {
String url = "http://localhost:8080/api/users/" + id;
return restTemplate.getForObject(url, User.class);
}
}
```
在调用方项目中,我们注入了一个RestTemplate实例,这个实例可以用来发送HTTP请求。在getUserById方法中,我们构建了一个GET请求的URL,并使用RestTemplate发送这个请求,得到了提供方项目返回的User对象。
需要注意的是,这里的URL是硬编码的,如果提供方项目的地址发生了变化,我们需要手动修改这个URL。在实际开发中,可以将这个URL配置到配置文件中,这样就可以方便地进行修改。
同时,为了让RestTemplate能够正常工作,我们需要在调用方项目的配置文件中添加如下配置:
```yaml
spring:
main:
allow-bean-definition-overriding: true
application:
name: consumer-service
restTemplate:
rootUri: http://localhost:8080
```
这样,我们就可以在调用方项目中调用提供方项目的接口了。