lllxxxqqq2014
.summer
2020-10-29 09:47
采纳率: 100%
浏览 258
已采纳

@Autowired private HttpServletRequest request;为什么会报错

@Autowired
    private HttpServletRequest request;

为什么会报错,springboot
图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • qq_43502965
    寻佚 2020-11-02 19:27
    已采纳

    可以用

    ServletRequestAttributes attributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
    HttpServletRequest request = attributes.getRequest();
    

    获取request

    点赞 评论
  • qq_23126581

    不能这么用,
    你要是想用直接到方法里用

    public getListInfo(HttpServletRequest request){
        request.xxxxx
       ....
    }
    
    点赞 评论
  • qq_42235984
    _YuLF 2020-10-29 12:59

    可以换一种方式,想动态的在业务方法使用AOP为该方法增加日志,但是日志又需要该方法的参数,那你就可以通过下面的JoinPoint来取具体切入方法的参数列表,

    Controller

    /**
         * 需要切面的方法  业务方法,需要加日志的方法
         * @param request
         * @param userName
         * @return
         */
        @RequestMapping("/test")
        public String test01(HttpServletRequest request, @RequestParam("userName")String userName){
            //...
            return null;
        }
    

    切面类

        /**
         * 抽取可重用的切入点表达式  指定切入上面的test01方法
         * 1.随便声明一个void的方法
         */
        @Pointcut( "execution(public int com.design_mode.test.TestMain.test01(..))" )
        public void statement()
        {
        }
    
    /**
         * 切面类方法执行之前执行   具体需要执行的业务
         */
        @Before( "statement()" )
        public void logStart( JoinPoint joinPoint )
        {
            /* 获取参数列表 */
            Object[] args = joinPoint.getArgs();
            HttpServletRequest request = (HttpServletRequest) args[0];//把该方法第0个参数转换成HttpServletRequest
            /* 获取方法名 */
            String methodName = joinPoint.getSignature().getName();
            System.out.println( "invoke method:【" + methodName + "】invoke param list:" + Arrays.asList( args ) );
        }
    
    点赞 评论
  • qq_36911145
    封印di恶魔 2020-10-29 17:38

    HttpServletRequest是controller的可选参数
    autowried注入的是由spring管理的实体

    点赞 评论

相关推荐