1, структура проекта (проект Maven)
2, dubbotest.pom
<? XML версия = "1.0" кодирование = "UTF-8"?> <XMLNS Project = "http://maven.apache.org/POM/4.0.0" XMLNS: XSI = «HTTP: //www.w3 .org / 2001 / "THE XMLSchema инстанции http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">: XSI SchemaLocation = " <modelVersion> 4.0.0 </ modelVersion> <GroupID> com.an </ GroupID> <артефакта> Dubbo-Test </ артефакта> <упаковка> POM </ Тара и упаковка> <версия> СНАПШОТ-1,0 </ Version> <Свойства > <motan.version> 0.3.0 </motan.version> <- GA версия широко используется во внутреннем Алибабе :! 2.4.9, эта версия настоятельно рекомендуется -> <Даббо.версия> 2.5.3 </dubbo.version> <dubbox.version> 2.8.4 </dubbox.version> <spring.version> 4.3.6.RELEASE </spring.version> <идентификатор_группы> org.springframework </ идентификатор_группы> <java.version> 1,7 </java.version> <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding> </ Свойства> <модули> <модуль> Поставщик </ модуль> <модуль> Потребитель < / модуль> <модуль> апи </ модуль> </ модули> <зависимостей> <зависимость> <идентификатор_группы> com.alibaba </ идентификатор_группы> <артефакт> Dubbo </ артефакт> <версия> 2.5.3 </ версия> < исключения> <исключение> <артефакта> весна </ артефакт> </ исключение> </ исключения> </ зависимость> <зависимость> <идентификатор_группы> com.github.sgroschupf </ идентификатор_группы> <артефакт> zkclient </ артефакт> <версия> 0,1 </ версия> </ зависимость> <! - - весна相关-> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы> <артефакта> весна-ядро </ артефакт> <версия> $ {spring.version} </ версия> </ зависимость> <зависимость> < идентификатор_группы> org.springframework </ идентификатор_группы> <артефакт> весна-бобы </ артефакт> <версия> $ {spring.version} </ версия> </ зависимость> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы> <артефакта> весна-контекст </ артефакта> <версия> $ {spring.version} </ версия> </ зависимость> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы> <артефакта> весна JDBC </ артефакта> <версия> $ {spring.version} </ версия> </ зависимость> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы> <артефакта> весна-веб </ артефакт> <версия> $ {spring.version} </ версия> </ зависимость> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы> <артефакт> весна-webmvc </ артефакт> <версия> $ {spring.version} </ версия> </ зависимость> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы> <артефакта> весна-АОП </ артефакта> <версия> $ {spring.version} < / версия> </ зависимость> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы> <артефакта> весна-ТХ </ артефакта> <версия> $ {spring.version} </ версия> </ зависимость> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы>версия} </ версия> </ зависимость> <зависимость>springframework </ идентификатор_группы> <артефакта> весна-ОРМ </ артефакт> <версия> $ {spring.version} </ версия> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы> <артефакта> весна-контекст-поддержка </ артефакта> <версия> $ {spring.version} </ версия> </ зависимость> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы> <артефакта> весна-тест </ артефакт> <версия> $ {spring.version} </ версия> </ зависимость> <зависимость> <идентификатор_группы> org.springframework </ идентификатор_группы> <артефакта> весна-JMS </ артефакта> <версия> $ {spring.version} </ версия> </ зависимость> <идентификатор_группы> org.aspectj </ идентификатор_группы> <артефакт> aspectjrt </ артефакт> <версия> 1.6.11 </ версия> </ зависимость> <зависимость> <идентификатор_группы> org.aspectj </ идентификатор_группы> <артефакта> aspectjweaver < / артефакта> <версия> 1.6.11 </ версия> </ зависимость> </ зависимостей> </ проект>
3, апи
3.1, п
<? XML версия = "1.0" кодирование = "UTF-8"?> <проект XMLNS = "http://maven.apache.org/POM/4.0.0" Xmlns: XSI = "HTTP: //www.w3 .org / 2001 / XMLSchema-экземпляр» XSI: SchemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <родитель> <артефакта> Dubbo-тест </ артефакта> <идентификатор_группы> com.an </ идентификатор_группы> <версия> 1.0-СНАПШОТ </ версия> </ родитель> <modelVersion> 4.0.0 </ modelVersion> <артефакта> апите </ артефакт> </ проект>
3,2, HelloService
пакет com.an.service; открытый интерфейс HelloService { Строка SayHello (String тзд); }
4, поставщик
4,1, П
<? XML версия = "1.0" кодирование = "UTF-8"?> <проект XMLNS = "http://maven.apache.org/POM/4.0.0" Xmlns: XSI = "HTTP: //www.w3 .org / 2001 / XMLSchema-экземпляр» XSI: SchemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <родитель> <артефакта> Dubbo-тест </ артефакта> <идентификатор_группы> com.an </ идентификатор_группы> <версия> 1.0-СНАПШОТ </ версия> </ родитель> <modelVersion> 4.0.0 </ modelVersion> <артефакта> провайдер </ артефакт> <свойства> <project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding> </ свойства> <зависимостей> <зависимость> <идентификатор_группы> com.an </ идентификатор_группы> <артефакта> апи </ артефакт> <версия> 1,0-ПАНОРАМА </ версия> </ зависимость> </ зависимостей> </ проект>
4.2, log4j.properties
### уровней набор LOG ### log4j.rootLogger = информация, STDOUT ### выводится на консоль ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [% d {дд / мм / гг чч: мм: сс: SSS г}]% т% 5p% гр {2}:% м% н
4,3, HelloServiceImpl
пакет com.an.service; общественный класс HelloServiceImpl реализует HelloService { общественного String , SayHello (Строка Msg) { возвращение Сообщи; } }
4.4, Dubbo-provider.xml
<? XML версия = "1,0" кодировка = "UTF - 8"> <Фасоль Xmlns = "http://www.springframework.org/schema/beans" XMLNS: XSI = «http://www.w3.org / 2001 / XMLSchema инстанции " XMLNS: Dubbo =" http://code.alibabatech.com/schema/dubbo " XSI: SchemaLocation =" http://www.springframework.org/schema/beans HTTP: // ВСП. springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd «> <! - предложения партия имя приложения -> <Dubbo: имя приложения = "Dubbo-провайдер" /> <- с использованием многоадресного воздействия адрес службы реестра ->! <Даббо: реестр адрес = "многоадресный: //224.5.6.7: 1234" /> <! - Даббо соглашение с воздействием портовых услуг 20880 -> <Dubbo: Протокол имя = "Dubbo" Port = "20880" /> <- - оператор должен подвергаться ошибки тайм - аута службы интерфейса тайм - аут в течение долгого времени тоже!> <Dubbo: Сервисный интерфейс = «com.an.service.HelloService "REF =" HelloService "тайм - аут =" 5000 «/> </ Фасоль>
4.5, ProviderRunner
пакет com.an; импорт org.springframework.context.support.ClassPathXmlApplicationContext; импорт java.io.IOException; общественного класса ProviderRunner { государственной статической силы основных (String [] арг) бросает IOException { ClassPathXmlApplicationContext контекст = новый ClassPathXmlApplicationContext (новый String [] { "Dubbo-provider.xml"}); context.start (); System.out.println ( "поставщик ... начал ..."); System.in.read (); } }
5, потребитель
5,1, П
<? XML версия = "1.0" кодирование = "UTF-8"?> <проект XMLNS = "http://maven.apache.org/POM/4.0.0" Xmlns: XSI = "HTTP: //www.w3 .org / 2001 / XMLSchema-экземпляр» XSI: SchemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <родитель> <артефакта> Dubbo-тест </ артефакта> <идентификатор_группы> com.an </ идентификатор_группы> <версия> 1.0-СНАПШОТ </ версия> </ родитель> <modelVersion> 4.0.0 </ modelVersion> <артефакта> потребитель </ артефакт> <зависимостей> <зависимость> <идентификатор_группы> ком.ап </ идентификатор_группы> <артефакта> апи </ артефакта> <версия> 1.0-СНАПШОТ </ версия> </ зависимость> </ зависимостей> </ проект>
5.2, log4j.properties
### уровней набор LOG ### log4j.rootLogger = информация, STDOUT ### выводится на консоль ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [% d {дд / мм / гг чч: мм: сс: SSS г}]% т% 5p% гр {2}:% м% н
5,3, Dubbo-потребитель
<? XML версия = "1,0" кодировка = "UTF - 8"> <Фасоль Xmlns = "http://www.springframework.org/schema/beans" XMLNS: XSI = «http://www.w3.org / 2001 / XMLSchema инстанции " XMLNS: Dubbo =" http://code.alibabatech.com/schema/dubbo " XSI: SchemaLocation =" http://www.springframework.org/schema/beans HTTP: // ВСП. springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd «> <! - потребление партия имя приложения -> <Dubbo: имя приложения = «Dubbo-Потребитель» /> <! - широковещательная с помощью группового обнаружения службы адреса подвергания реестра -> <Даббо: реестр адрес = "многоадресный: //224.5.6.7: 1234" /> <! - генерируется агент удаленного обслуживания, вы можете использовать один и тот же локальный demoService боба -> <Даббо: Reference ID = интерфейс "HelloService" = "com.an.service.HelloService" /> </ бобы>
5,4, ConsumerRunner
пакет com.an; импорт com.an.service.HelloService; импорт org.springframework.context.support.ClassPathXmlApplicationContext; общественного класса ConsumerRunner { государственной статической силы основных (String [] арг) { ClassPathXmlApplicationContext контекст = новый ClassPathXmlApplicationContext (новый String [] { "Dubbo-consumer.xml"}); context.start (); HelloService HelloService = (HelloService) context.getBean ( "HelloService"); Строка тзд = helloService.sayHello ( "привет мир"); System.out.println (MSG); } }