【编程求助】 最近在搞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