首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏软件开发-青出于蓝

    Springcloud之zuul的过滤头部

    -3,1处和2处,会将ZuulProperties中sensitiveHeaders的值加入到要过滤的字段里面,来看下ProxyRequestHelper的addIgnoredHeaders方法,如下List name.toLowerCase());//1 } for (String name : names) { set.add(name.toLowerCase());//2 } } List 调用isIncludedHeader方法,isIncludedHeader里面获取RequestContext,判断当前的这个header key是不是在IGNORED_HEADERS这个集合里面——List context.getZuulRequestHeaders()获取我们手动设置的header(调用addZuulResponseHeader方法设置),之后逐个遍历,如果在IGNORED_HEADERS这个集合里面——List 要注意的是,如果要往下游传的header含有大写的,那么下游接收到的header是小写的,原因在List-4中可以看出。 Reference 源码

    1.6K20发布于 2019-07-08
  • 来自专栏软件开发-青出于蓝

    Mybatis之拦截器Interceptor

    Object target); void setProperties(Properties properties); }     来看PageInterceptor如何实现intercept接口的,如下List -4 List-4 @Override public Object intercept(Invocation invocation) throws Throwable { try { List-4中如果不需要分页,则直接调用executor的query方法。 List-4中,需要count查询后,判断手写的count已存在,不存在则调用mybatis的builder等工具类构造,之后进行count查询,得到结果后调用dialect的afterCount方法, else if(page.isOrderByOnly()){ page.setTotal(pageList.size()); } return page; }     List

    2.4K30发布于 2019-06-16
  • 来自专栏软件开发-青出于蓝

    SpringFramework之mvc的HandlerMapping

    getHandlerInternal的实现在AbstractHandlerMethodMapping中,如List-3所示 获取request中的url 调用lookupHandlerMethod方法获取HandlerMethod,如List handlerMethod.createWithResolvedBean() : null); } finally { this.mappingRegistry.releaseReadLock(); } } List return handleNoMatch(this.mappingRegistry.getMappings().keySet(), lookupPath, request); } }     如List 回到List-3,在List-4中返回HandlerMethod后,调用getHandlerExecutionChain方法构造一个HandlerExecutionChain,读者可以去看下HandlerExecutionChain

    61620发布于 2019-07-01
  • 来自专栏软件开发-青出于蓝

    SpringFramework之DispatcherServlet的初始化简析

    ; } else { return new LinkedList<T>(); } }     defaultStrategies是DispatcherServlet的一个属性,它的初始化如下List -4所示, List-4 defaultStrategies的初始化源码 private static final Properties defaultStrategies; static { // 图3 文件DispatcherServlet.properties的内容     List-3中的createDefaultStrategy(context, clazz),代码如下List-4所示。 List-4 方法createDefaultStrategy的源码 protected Object createDefaultStrategy(ApplicationContext context,

    78730发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    SpringFramework之@Controller/@RequestMapping解析

    afterPropertiesSet() { initHandlerMethods(); }     由List-3知道afterPropertiesSet调用了initHandlerMethods(),如下List List-4中的handlerMethodsInitialized是空方法,不用管。 List-4 protected void initHandlerMethods() { if (logger.isDebugEnabled()) { logger.debug("Looking detectHandlerMethods(beanName); } } } handlerMethodsInitialized(getHandlerMethods()); }     来看List

    76420发布于 2019-07-01
  • 来自专栏软件开发-青出于蓝

    Feign源码分析之FeignClientFactoryBean

    RequestInterceptor接口,之后交给Spring容器,feign会自动加上这个拦截器,这个的实现也在FeignClientFactoryBean中,在configureUsingConfiguration方法中,如下List -4 List-4 Map<String, RequestInterceptor> requestInterceptors = context .getInstances(this.contextId = null) { builder.requestInterceptors(requestInterceptors.values()); }     List-4中的context.getInstances

    1.6K10发布于 2019-10-08
  • 来自专栏软件开发-青出于蓝

    MySQL之修改max_connections

    mysql.service文件末尾加入如下List-3中的内容 List-3 LimitNOFILE=65535 LimitMEMLOCK=65535 3.编辑/etc/mysql/my.cnf,加入List -4中的内容 List-4 [mysqld] max_connections=600 4.执行命令 List-5 sudo systemctl daemon-reload 5.重启MySQL之后,查看

    1.9K30发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    Kubernetes之ingress设置账号密码

    怎么在ingress中使用这个secret呢,如下List-4,在annotations中使用我们创建好的secret List-4 apiVersion: networking.k8s.io/v1beta1

    2.5K10发布于 2020-05-20
  • 来自专栏软件开发-青出于蓝

    Springsecurity之LogoutFilter

    HttpServletResponse的重定向 如果满足步骤1的要求,那么不会调用FilterChain了     来看下SecurityContextLogoutHandler的logout方法,如下List -4所示, List-4 public void logout(HttpServletRequest request, HttpServletResponse response, Authentication SecurityContextHolder.getContext(); context.setAuthentication(null); } SecurityContextHolder.clearContext(); }     在List

    1.3K30发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    Disruptor之ExceptionHandler

    IgnoreExceptionHandler只是将异常打印下,但是FatalExceptionHandler则不同,正如其名字所示,它内部将异常再次封装到RuntimeException再次抛出,如下List -4 List-4 public final class FatalExceptionHandler implements ExceptionHandler<Object> { private

    1.4K20发布于 2020-06-18
  • 来自专栏软件开发-青出于蓝

    filebeat导入Hadoop日志到Elasticsearch中

    之后如List-4所示,没有报错就说明成功了。 List-4 .

    1.4K51发布于 2019-06-11
  • 来自专栏软件开发-青出于蓝

    vue中使用中央事件总线bus 原

    3、index.vue     创建index.vue List-4 index.vue <template>

    随机增加: <counter :number="number $bus.off('add', this.handleAddRandom); } } </script> <style scoped> </style>     <em>List-4</em>中,引入counter.vue

    98330发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    SpringFramework之HandlerInterceptor

    this.handler, mv); } } } 位置6、如果之前没有抛出异常,就调用processDispatchResult方法,方法processDispatchResult的最后,有如下List 由List-5可以看出,afterCompletion中抛出异常,会被Spring框架吞噬,每个HandlerInterceptor的afterCompletion方法中,拿到的异常都是null——看List List-4 ...... if (mappedHandler !

    93030发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    Ribbon的AvailabilityFilteringRule

    (Server)server.get() : null; }     chooseRoundRobinAfterFiltering中是如何实现的呢,如下List-4, 获取所有的服务实例 遍历服务列表, 过滤掉不满足条件的 在满足条件的服务列表中,再进行RoundRibbon算法,选出服务 List-4 public Optional<Server> chooseRoundRobinAfterFiltering

    99540发布于 2019-10-08
  • 来自专栏软件开发-青出于蓝

    Springframework之ReflectiveAspectJAdvisorFactory

    else { return null; } } ReflectiveAspectJAdvisorFactory的getAdvice方法会根据方法上的注解,创建对应的Advice,如下List -4所示 List-4 public Advice getAdvice(Method candidateAdviceMethod, AspectJExpressionPointcut expressionPointcut

    61320发布于 2019-07-15
  • 来自专栏软件开发-青出于蓝

    Redis之如何安装Redis 原

    List-2 cd redis-3.2.10 sudo make test 4.执行install命令     编译安装,如下 List-3 sudo make install 5.查看结果 List 9 2 23:16 src/redis-server -rwxr-xr-x@ 1 mjduan wheel 59K 7 28 2017 src/redis-trib.rb     如List

    50050发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    SpringFramework之ContentNegotiation内容协商

    HeaderContentNegotiationStrategy加入到结果集合中,即Http头部的Accept 如果设置了defaultNegotiationStrategy,就会把我们添加的自定义Strategy加入到结果集合中     如下List resolveMediaTypes返回的值不等于MEDIA_TYPE_ALL_LIST,那么就直接返回,结合List-3中添加的顺序,这就是路径拓展第一生效,第二format固定值,第三Http头部的Accept List

    85710发布于 2020-07-02
  • 来自专栏软件开发-青出于蓝

    SpringFramework之DefaultAdvisorChainFactory

    如下List-4所示,构造方法中注册了Adapter,而后getInterceptors方法中会使用模板模式将advisor中的advice转换为MethodInterceptor。 List-4 public class DefaultAdvisorAdapterRegistry implements AdvisorAdapterRegistry, Serializable {

    70320发布于 2019-07-15
  • 来自专栏软件开发-青出于蓝

    Springsecurity之FilterChainProxy

    doFilterInternal,通过getFilters(HttpServletRequest)方法,根据request的url来获取对应的Filter,如下List-3所示,SecurityFilterChain是个接口,如List filterChains) { if (chain.matches(request)) { return chain.getFilters(); } } return null; } List

    86520发布于 2019-04-15
  • 来自专栏软件开发-青出于蓝

    SpringFramework之HandlerMapping的俩个默认实现类的初始化

    若类上没有找到RequestMapping注解,则判断类上是否有Controller注解,如果有,那么执行detectHandlerMethods,这个方法的源码有点多,我只是给出部分,如下List-4 所示:     List-4 DefaultAnnotationHandlerMapping的detectHandlerMethods方法源码 protected boolean detectHandlerMethods 从List-4可知,detectHandlerMethods方法,对类的方法进行遍历,之后逐个处理每个方法。     

    88610发布于 2019-04-15
领券