【编程求助】 最近在搞mybatis-plus的拦截器,遇到一个问题。在自动填充创建人和更新人时,需要使用User类的name字段,但需要调用user.getName()方法。有没有大佬能教教我?🙏

Comment From: Verdant-Grassland

package com.example.buildtable.filter;

import com.alibaba.nacos.shaded.com.google.gson.Gson;
import com.example.buildtable.pojo.User;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.annotation.WebFilter;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import java.io.IOException;


/**
 * @author v_dingjiaye
 */
@Slf4j
@Order(2)
@WebFilter(filterName = "userInfoFilter", urlPatterns = "/*")
@Component
public class UserInfoFilter implements Filter {
    @Autowired
    private UserCache userCache;

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        Filter.super.init(filterConfig);
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain)
            throws IOException, ServletException {

        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute("loggedInUser");
        log.info("User: {}", new Gson().toJson(user));
        if (user != null) {
            userCache.setUserInfo(user);
        }

        try {
            chain.doFilter(servletRequest, servletResponse);
        } catch (Exception e) {
            throw e;
        } finally {
            userCache.remove();
        }
    }

    @Override
    public void destroy() {
        Filter.super.destroy();
    }
}
package com.example.buildtable.filter;

import com.example.buildtable.pojo.User;
import org.springframework.stereotype.Component;


@Component
public class UserCache {

    private final ThreadLocal<User> userCache = new ThreadLocal<User>();

    public void setUserInfo(User admin) {
        userCache.set(admin);
    }

    public User getUserInfo() {
        System.out.println(userCache.get());
        if (userCache.get() == null) {
            return new User();
        }
        return userCache.get();
    }

    public void remove() {
        this.userCache.remove();
    }

}

Comment From: miemieYaho

这里不教人

Comment From: Verdant-Grassland

这里不教人

我这个有问题,不是教人 但是它为null

Comment From: miemieYaho

什么null不null的,你上面的代码也和mp毫无关系啊

Comment From: Verdant-Grassland

什么null不null的,你上面的代码也和mp毫无关系啊

有的,加我vx:liuq2021yuan,我这个用的MyBatisPlus关于自增createBy