Spring Boot 静态获取 Bean
本文最后更新于 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();
    }
}
如果觉得本文对您有帮助,记得收藏哦~
上一篇
下一篇