class ExpressionStrategyCondition extends AbstractStrategyCondition {
    @Autowired
    private StrategyWrapper strategyWrapper;

    @Override
    public boolean isTriggered(StrategyConditionEntity strategyConditionEntity) {
        Map<String, String> map = createMap(strategyConditionEntity);

        return isTriggered(strategyConditionEntity, map);
    }

    private Map<String, String> createMap(StrategyConditionEntity strategyConditionEntity) {<FILL_FUNCTION_BODY>}

    @Override
    public boolean isTriggered(StrategyConditionEntity strategyConditionEntity, Map<String, String> map) {
        String expression = strategyConditionEntity.getExpression();

        return DiscoveryExpressionResolver.eval(expression, DiscoveryConstant.EXPRESSION_PREFIX, map, strategyTypeComparator);
    }
}

        String expression = strategyConditionEntity.getExpression();
        if (StringUtils.isEmpty(expression)) {
            return null;
        }

        Map<String, String> map = new HashMap<String, String>();

        List<String> list = DiscoveryExpressionResolver.extractList(expression);
        for (String name : list) {
            String value = null;

            // 从外置Parameter获取
            if (StringUtils.isBlank(value)) {
                value = strategyContextHolder.getParameter(name);
            }

            // 从外置Cookie获取
            if (StringUtils.isBlank(value)) {
                value = strategyContextHolder.getCookie(name);
            }

            // 从外置Header获取
            if (StringUtils.isBlank(value)) {
                value = strategyContextHolder.getHeader(name);
            }

            // 从内置Header获取
            if (StringUtils.isBlank(value)) {
                value = strategyWrapper.getHeader(name);
            }

            if (StringUtils.isNotBlank(value)) {
                map.put(name, value);
            }
        }

        return map;
    
<methods>public non-sealed void <init>() ,public com.nepxion.discovery.plugin.strategy.context.StrategyContextHolder getStrategyContextHolder() ,public TypeComparator getStrategyTypeComparator() <variables>protected com.nepxion.discovery.plugin.strategy.context.StrategyContextHolder strategyContextHolder,protected TypeComparator strategyTypeComparator