对于返回格式为JSON
的资源或者 Restful 接口,统一采用RestTemplate
来请求,其它类型响应数据的也建议采用不同的MessageConverter
来实现,不 建议再延续使用自定义的类似HttpUtils
,HttpHelper
之类的工具类。
线程池拒绝策略
ThreadPoolExecutor
类实现了ExecutorService
接口和Executor
接口,可以设置线程池corePoolSize,最大线程池大小,AliveTime,拒绝策略等。常用构造方法:
当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务拒绝策略,通常有以下四种策略:
1 | ThreadPoolExecutor.AbortPolicy // 丢弃任务并抛出RejectedExecutionException异常。 |
短路式编程(Fast-Break)
目标 :优化代码结构中的嵌套层次,减少代码缩进,提升代码可以性,可理解性;
现实情况
1 | public boolean checkSensitiveWord(String targetWord) { |
原因 :正向思维,编码过程中,一直在思索正常的流程情况是什么样的。
Tomcat 源码解读——启动篇
简介
The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. The Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket specifications are developed under the Java Community Process.
The Apache Tomcat software is developed in an open and participatory environment and released under the Apache License version 2. The Apache Tomcat project is intended to be a collaboration of the best-of-breed developers from around the world. We invite you to participate in this open development project. To learn more about getting involved, click here.
Apache Tomcat software powers numerous large-scale, mission-critical web applications across a diverse range of industries and organizations. Some of these users and their stories are listed on the PoweredBy wiki page.
Apache Tomcat, Tomcat, Apache, the Apache feather, and the Apache Tomcat project logo are trademarks of the Apache Software Foundation.以上的简介自来 Apache Tomcat 官网,Tomcat服务器是一个免费的开放源代码的Web应用服务器。Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet 和JSP规范总是能在Tomcat中得到体现,因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,是目前比较流行的Web应用服务器。
Tomcat源码解读——Connector之一个请求的完整历程
我们在Tomcat 源码解读——启动篇中讲解过Connector的初始化过程,但并没有深入的去研究Connector.strat
方法,以及启动后是怎么接收并处理用户请求的,本文将重点讲述这一过程。
Tomcat源码解读——Mapper的路由游戏
前言
在Tomcat 源码解读——启动篇中我们讲解到一个概念:
Mapper
,它是用来匹配用户的请求,并将请求路由到指定的容器进行处理的关键组件,本文将通过源码分析来了解这个组件的生命周期及运作原理。
SpringBoot——Netflix Feign
1. 概述
What?
Feign是一个 Netflix 开发的声明性的Web服务客户端,灵感来源于Retrofit
、JAXRS-2.0
和WebSocket
。Feign 最初是为了降低统一绑定Denominator 到 HTTP API 的复杂度,使得 Java HTTP 客户端编写更方便。
Feign 的 MAVEN 直接依赖如下所示:
1 | <dependency> |
其中 feign-gson 主要是为了进行 gson 序列化,并不是必需的