关于DubboMain启动的真相
我們剛剛使用Main.main(args); 來(lái)啟動(dòng)dubbo服務(wù),到底是如何實(shí)現(xiàn)的呢?
正常情況下,我們會(huì)認(rèn)為服務(wù)的發(fā)布,需要tomcat、或者jetty這類(lèi)的容器支持,但是只用Dubbo以后,我們并不需要這樣重的服務(wù)器去支持,同時(shí)也會(huì)增加復(fù)雜性,和浪費(fèi)資源。Dubbo提供了幾種容器讓我們?nèi)?dòng)和發(fā)布服務(wù)
容器類(lèi)型
Spring Container
自動(dòng)加載?META-INF/spring?目錄下的所有?Spring?配置。
logback?Container
自動(dòng)裝配logback日志
Log4j Container
自動(dòng)配置?log4j?的配置
Dubbo提供了一個(gè)Main.main快速啟動(dòng)相應(yīng)的容器,默認(rèn)情況下,只會(huì)啟動(dòng)spring容器?
原理分析
默認(rèn)情況下,spring容器,本質(zhì)上,就是加在spring?ioc容器,然后啟動(dòng)一個(gè)netty服務(wù)實(shí)現(xiàn)服務(wù)的發(fā)布,所以并沒(méi)有特別多的黑科技,下面是spring容器啟動(dòng)的代碼
public void start() { String configPath = ConfigUtils.getProperty("dubbo.spring.config"); if (StringUtils.isEmpty(configPath)) { configPath = "classpath*:META-INF/spring/*.xml"; } context = new ClassPathXmlApplicationContext(configPath.split("[,\\s]+"), false); context.refresh(); context.start(); }?
總結(jié)
以上是生活随笔為你收集整理的关于DubboMain启动的真相的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Dubbo的发展历史
- 下一篇: 基于注册中心的Dubbo服务