本来是准备一天一更,大致表述完tomcat的。但是,最近一直在准备考试,也就没有继续更新。今天就聊一聊tomcat中的service。
Service可以说是tomcat的比较重要的部分。原因就是其中包含了两个组件,Container和Connector。Container是一个容器,负责处理请求的。Connector是负责接受请求,并且将请求提交给Container。(关于Connector和Container的执行流程,在后续的文章也会详细展开)
一,关于Service的初始化时期
关于service的初始化,我们可以发现,这个步骤其实是在StandardServer中的,是Server.init()时候发生的。
并且,我们可以了解,其实在Server初始化的时候,是可以初始化多个Service的。(Server的初始化流程,在上一篇tomcat分析之server详细的表述)
二,Service的初始化
和其他部分的init()一样,Service的初始化函数是在对应得实现类中。
Service的具体实现就在StandService中。
来看一波源码
@Override
protected void initInternal() throws LifecycleException {
super.initInternal();
if (engine != null) {
engine.init();
}
// Initialize any Executors
for (Executor executor : findExecutors()) {
if (executor instanceof JmxEnabled) {
((JmxEnabled