protected Map<String, Object> fetchActionRequestContext(Method method, Object[] arguments) {
        Map<String, Object> context = new HashMap<>(8);

        Annotation[][] parameterAnnotations = method.getParameterAnnotations();
        for (int i = 0; i < parameterAnnotations.length; i++) {
            for (int j = 0; j < parameterAnnotations[i].length; j++) {
                if (parameterAnnotations[i][j] instanceof BusinessActionContextParameter) {
                    // get annotation
                    BusinessActionContextParameter annotation = (BusinessActionContextParameter) parameterAnnotations[i][j];
                    if (arguments[i] == null) {
                        throw new IllegalArgumentException("@BusinessActionContextParameter 's params can not null");
                    }

                    // get param
                    Object paramObject = arguments[i];
                    if (paramObject == null) {
                        continue;
                    }

                    // load param by the config of annotation, and then put into the context
                    ActionContextUtil.loadParamByAnnotationAndPutToContext(ParamType.PARAM, "", paramObject, annotation, context);
                }
            }
        }
        return context;
    }
@Test
    public void testBusinessActionContext() throws NoSuchMethodException {
        Method prepareMethod = TestAction.class.getDeclaredMethod("prepare",
                BusinessActionContext.class, int.class, List.class, TestParam.class);
        List<Object> list = new ArrayList<>();
        list.add("b");
        TestParam tccParam = new TestParam(1, "abc@ali.com");

        Map<String, Object>  paramContext = actionInterceptorHandler.fetchActionRequestContext(prepareMethod,
                new Object[]{null, 10, list, tccParam});
        System.out.println(paramContext);

        Assertions.assertEquals(10, paramContext.get("a"));
        Assertions.assertEquals("b", paramContext.get("b"));
        Assertions.assertEquals("abc@ali.com", paramContext.get("email"));
    }