本文最后更新于 946 天前,其中的信息可能已经有所发展或是发生改变。
ApplicationContextAware接口
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class BeanUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
//静态获取Bean
public static T getBean(Class clazz) {
return applicationContext.getBean(clazz);
}
}
RequestContextHolder类
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletUtils {
public static RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
//静态获取HttpServletRequest
public static HttpServletRequest getRequest() {
if (!(requestAttributes instanceof ServletRequestAttributes)) {
throw new RuntimeException("ServletRequestAttributes get failed.");
}
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
return servletRequestAttributes.getRequest();
}
//静态获取HttpServletResponse
public static HttpServletResponse getResponse() {
if (!(requestAttributes instanceof ServletRequestAttributes)) {
throw new RuntimeException("ServletRequestAttributes get failed.");
}
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
return servletRequestAttributes.getResponse();
}
}