package com.dy.common.webFilter; import com.dy.common.multiDataSource.DataSourceContext; import jakarta.servlet.*; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import java.io.IOException; /** * @author ZhuBaoMin * @date 2024-06-19 11:02 * @LastEditTime 2024-06-19 11:02 * @Description */ @Slf4j public class WXDataSourceNameSetFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) servletRequest; String wxDataSourceName = httpRequest.getHeader("tag"); if(wxDataSourceName != null && wxDataSourceName.trim().length() > 0){ log.info("微信开发,设置数据源名称为:" + wxDataSourceName); //把组织单位标签作为数据源名称 DataSourceContext.set(wxDataSourceName); } else { log.info("用户未选择数据源"); } filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { } }