SpringServerServlet继承了ServerServlet, 在web.xml声明了SpringServerServlet。
当Tomcat启动的时候,会调用ServerServlet的init()方法。
这是Restlet启动的开始点!
一、init()方法
1、ServerServlet init()方法先获取 component :
Component component = getComponent();
2、然后启动component
component.start();
二、getComponent()方法
1、getComponent()方法首先调用createComponent()创建compoennt
Compoennt component = createComponent();
createComponent的方法在SpringServerServlet 中提供了一个实现。
SpringServerServlet 从Spring环境中以 org.restlet.component 为键值,获取 Component 的实例。如果没有,则创建一个新的 Component 实例。
这时候,Component实例没有设置 defaultTarget 的值。
2、然后调用 init(component)初始化,完成一些参数的传递
init(component );
三、component.start()方法
此方法在 ServerServlet 类中 init()方法中。
其中 startRouters 如下,internalRouter、defaultHost 和 host都是在这里启动的:
当Tomcat启动的时候,会调用ServerServlet的init()方法。
这是Restlet启动的开始点!
一、init()方法
1、ServerServlet init()方法先获取 component :
Component component = getComponent();
2、然后启动component
component.start();
二、getComponent()方法
1、getComponent()方法首先调用createComponent()创建compoennt
Compoennt component = createComponent();
createComponent的方法在SpringServerServlet 中提供了一个实现。
SpringServerServlet 从Spring环境中以 org.restlet.component 为键值,获取 Component 的实例。如果没有,则创建一个新的 Component 实例。
这时候,Component实例没有设置 defaultTarget 的值。
2、然后调用 init(component)初始化,完成一些参数的传递
init(component );
三、component.start()方法
此方法在 ServerServlet 类中 init()方法中。
- public synchronized void start() throws Exception {
- if (isStopped()) {
- startClients();
- startServers();
- startRouters();
- startServices();
- startRealms();
- startHelper();
- super.start();
- }
- }
其中 startRouters 如下,internalRouter、defaultHost 和 host都是在这里启动的:
- protected synchronized void startRouters() throws Exception {
- if (this.internalRouter != null) {
- this.internalRouter.start();
- }
- if (this.defaultHost != null) {
- this.defaultHost.start();
- }
- for (VirtualHost host : getHosts()) {
- host.start();
- }
- }