摘要:
接着上一篇, 该到StandardContext的 init 和 startInternal 方法了.
StandardContext#initInternal()
此方法由 org.apache.catalina.util.LifecycleBase#init() 调用而来.
//org.apache... 阅读原文
2020-08-24 08:22:01 阅读(2307) 评论(0)
摘要:
Bootstrap#start()
daemon = bootstrap, 所以调用的还是 org.apache.catalina.startup.Bootstrap#start()
public void start() throws Exception {
if (catalinaDaemon ... 阅读原文
2020-08-24 06:33:03 阅读(2720) 评论(0)
摘要:
Bootstrap#load()
daemon.load(args) 调用的, 其实就是 bootstrap.load(args)
main方法中执行了 daemon = bootstrap;
org.apache.catalina.startup.Bootstrap#load():
private voi... 阅读原文
2020-08-24 06:00:32 阅读(2424) 评论(0)
摘要:
代码片段:
org.apache.catalina.startup.Bootstrap#main()
if (daemon == null) {
// Don't set daemon until init() has completed
Bootstrap bootstrap = new ... 阅读原文
2020-08-24 00:06:02 阅读(2860) 评论(0)
摘要:
tomcat架构
从这张图上, 可以很明确的看出, 各个组件的关系
Server: 服务器, 也就是一个tomcat
Service: 服务, 将多个 Connector 和 一个 Engine 组合起来, 成为一个服务. 1#Server -- n#Service
Connector: 接收器, 用... 阅读原文
2020-08-23 23:22:02 阅读(2411) 评论(0)
摘要:
7月2号10点后,刚好某个负责的服务发生大量的redis连接超时的异常(redis.clients.jedis.exceptions.JedisConnectionException),由于本身的数据库查询缓存在redis中2分钟,并且未做降级措施,而且本身不能做限流处理,而且随着午高峰的时间流量在飙... 阅读原文
2020-08-23 23:03:02 阅读(2461) 评论(0)
摘要:
1. 前言
记不记得之前发过一篇文章Spring 官方发起Spring Authorization Server 项目。该项目是由Spring Security主导的一个社区驱动的、独立的孵化项目。由于我们熟悉而且正在使用的Spring Security OAuth已经处在项目生命周期的尽头,Spring ... 阅读原文
2020-08-23 21:34:04 阅读(2368) 评论(0)
摘要:
== 运算符
== 既可以用于基本数据类型的比较,也可以用于引用数据类型的比较
(1)如果比较的是基本数据类型变量:比较两个变量的值是否相等,相等即为true
注意:当基本数据类型进行比较时,符号两边的数据必须类型兼容(类型相同或可自动类型转换),否则编译出错。
测试代码:
public class Equa... 阅读原文
2020-08-23 20:40:01 阅读(2356) 评论(0)
摘要:
本文是精讲响应式WebClient第4篇,前篇的blog访问地址如下:
精讲响应式webclient第1篇-响应式非阻塞IO与基础用法
精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方法详解
精讲响应式WebClient第3篇-POST、DELETE、PUT方法使用
WebClient是从... 阅读原文
2020-08-23 19:52:02 阅读(2360) 评论(0)
摘要:
今天在做公司的一个项目,一个广告类型分别用数字1和2表示,传给下拉框,第一次接触,有点烦,于是导出找资料,也没个靠谱的,后面看了十几篇别人的,最后总结出来了
1、首先定义枚举类,封装取值方法
public enum SysHomeTypeEnum {
SYS_HOME_TYPE_CATEGORY(1... 阅读原文
2020-08-23 19:24:02 阅读(2323) 评论(0)