SpringBoot上陸遮断器
2807 ワード
最近SpringBootでプロジェクトをしていて、SpringBootのブロッキングを研究して、記録をしました.
主に静的ファイルがブロックされる問題を解決しました
import com.qishimai.website.interceptor.MyInterceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.Arrays;
/**
* @author junbiao
* @date 2018 8 20 4:15:32
*/
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
private final Logger logger = LoggerFactory.getLogger(WebMvcConfiguration.class);
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
logger.info("add interceptors");
registry.addInterceptor(new MyInterceptor()).excludePathPatterns(Arrays.asList("/login","/static/**"));
}
}
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
public class MyInterceptor implements HandlerInterceptor {
Logger logger = LoggerFactory.getLogger(MyInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// TODO Auto-generated method stub
// session
HttpSession session = request.getSession(true);
// ID ,
if(session.getAttribute("userId") == null){
logger.info("------: login !");
response.sendRedirect(request.getContextPath()+"/login");
return false;
}else{
session.setAttribute("userId", session.getAttribute("userId"));
return true;
}
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO Auto-generated method stub
}
}
主に静的ファイルがブロックされる問題を解決しました