Spring Boot 自动将 Vue 提交的 URL 写入日志

要在Spring Boot中自动将Vue提交的URL写入日志,你可以使用Spring的HandlerInterceptor来拦截HTTP请求,并记录URL。下面是一个简单的实现示例:

1. 创建一个HandlerInterceptor来拦截请求

首先,创建一个拦截器类,它会在每次请求时记录请求的URL。

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Component
public class LoggingInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 获取请求的URL
        String requestUrl = request.getRequestURL().toString();

        // 记录URL到日志
        System.out.println("Received request for URL: " + requestUrl);

        // 继续执行请求
        return true;
    }
}

2. 配置拦截器

然后你需要将这个拦截器注册到Spring的拦截器链中。可以通过实现WebMvcConfigurer来完成。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Autowired
    private LoggingInterceptor loggingInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 注册拦截器并指定拦截所有路径
        registry.addInterceptor(loggingInterceptor).addPathPatterns("/**");
    }
}

3. 在Vue中发起请求

在Vue项目中,假设你使用axios来发起HTTP请求:

axios.post('/api/some-endpoint', data)
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

每次你通过Vue发起请求,Spring Boot的LoggingInterceptor都会拦截并将请求的URL打印到日志中。

4. 使用日志框架

如果你希望使用日志框架(如slf4j)而不是System.out.println来记录日志,你可以将拦截器中的日志记录替换为:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Component
public class LoggingInterceptor implements HandlerInterceptor {

    private static final Logger logger = LoggerFactory.getLogger(LoggingInterceptor.class);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String requestUrl = request.getRequestURL().toString();
        logger.info("Received request for URL: " + requestUrl);
        return true;
    }
}

这将通过slf4j记录日志,日志的输出格式和存储位置可以通过Spring Boot的application.propertiesapplication.yml文件配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天进步2015

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值