springboot拦截器如何发送通知到前端vue中
时间: 2024-03-14 11:44:46 浏览: 68
Spring Boot 拦截器中可以通过返回一个自定义的响应实体对象来发送通知到前端 Vue 中。具体实现步骤如下:
1. 自定义一个响应实体类,用于封装通知信息,例如:
```
public class ResponseData {
private Integer code;
private String message;
// 省略 getter 和 setter 方法
}
```
2. 在拦截器中判断是否需要发送通知,并设置通知信息到响应实体类中,例如:
```
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 判断是否需要发送通知
if (needToSendNotification(request)) {
// 设置通知信息到响应实体类中
ResponseData responseData = new ResponseData();
responseData.setCode(200);
responseData.setMessage("您有新的消息,请注意查收!");
response.setContentType("application/json;charset=UTF-8");
response.getWriter().write(new ObjectMapper().writeValueAsString(responseData));
return false;
}
return true;
}
```
3. 在 Vue 中使用 axios 发送请求,并处理响应实体类中的通知信息,例如:
```
axios.interceptors.response.use(
response => {
// 判断响应状态码是否为 200
if (response.status === 200) {
// 解析响应实体类中的通知信息
let responseData = response.data;
if (responseData.code === 200) {
// 显示通知信息
alert(responseData.message);
}
}
return response;
},
error => {
// 处理错误信息
console.log(error);
return Promise.reject(error);
}
);
```
通过以上步骤,就可以在 Spring Boot 拦截器中发送通知到前端 Vue 中了。
阅读全文