SpringBoot中拦截器中使用@Value无效和无法注入类的问题-创新互联

场景

在使用Spring Boot框架时,很经常会使用到拦截器。可是,有时候我们会遇到在拦截器使用@Value注解来获取配置文件中的配置参数获取失败,一直都是为null的情况

创新互联公司专注于企业全网营销推广、网站重做改版、水磨沟网站定制设计、自适应品牌网站建设、html5成都商城网站开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为水磨沟等各大城市提供网站开发制作服务。

解决办法

@value:定义一个静态类型,然后定义一个方法在方法上使用@value注解取值并赋值

无法注入类:使用ApplicationContext注入即可

@Component
public class BaseInterceptor implements HandlerInterceptor {

    @Autowired
    private RedisUtils redisUtils = MyApplicationContext.getBean(RedisUtils.class);


    public static String active;


    @Value("${spring.profiles.active}")
    public void setActive(String active){
        BaseInterceptor.active = active;
    }

    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        System.out.println("active = " + active);
    }


    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse response, Object o, ModelAndView modelAndView) throws Exception {
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "*");
        response.setHeader("Access-Control-Allow-Credentials", "true");
    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
    }

}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:SpringBoot中拦截器中使用@Value无效和无法注入类的问题-创新互联
新闻来源:http://cdiso.cn/article/ccdcig.html

其他资讯