在springcloud项目中,在全局中得到请求头

在昨天的代码中遇见一个问题,请求头是在过滤器进行拦截的,但是我想要在实现类中得到请求头中携带的值,我该怎么做?

这是过滤器中得到的参数,想要应用在全局

思路1:将这个参数存入redis,然后根据redis自带的set和get方法去取值,这里为大家提供一下redisUtis

public class RedisAPI {

    JedisPool jedisPool;
    Jedis jedis;

    public void setJedisPool(JedisPool jedisPool) {
        this.jedisPool = jedisPool;
    }

    public  void set(String key, String value, Integer expireTime){
        try {
            jedis = jedisPool.getResource();
            jedis.setex(key,expireTime,value);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jedisPool.returnResource(jedis);
        }
    }

    public  void set(String key, String value){
        try {
            jedis = jedisPool.getResource();
            jedis.set(key,value);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jedisPool.returnResource(jedis);
        }
    }




    public String get(String tokenString) {
        try {
            jedis = jedisPool.getResource();
            return jedis.get(tokenString);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jedisPool.returnResource(jedis);
        }


        return null;
    }

}

思路2:将数据存入线程,在另一个线程去得到,这样会涉及到多线程和线程安全问题,不考虑,有兴趣的小伙伴可以去试试

思路3:图一可以看见数据是根据Http获取的,所以我们可以直接在requst中拿到数据,在需要得到数据的类中注入HttpServletRequest,我相信很多小伙伴会想着注入ServerHttpRequest但是注意在spring cloud框架中,ServerHttpRequest是不能直接注入的。

这样就能拿到值啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值