소개
일련의 프로젝트의 앞에서, 우리는 인터페이스가 있음을 발견 할 것이다 것은 동일합니다, 우리는 당신이 더 효율적으로 처리 사업이 될 수 있도록, 단독 및 통합 유지 보수를 추출해야합니다. 한편,이 개 프로젝트 받는다는 종속성 많은 사람들이 프로젝트가 단결에 따라 보장하기 위해 함께 작업하는 동안 프로젝트를하는 데 도움이 통일성을 유지 관리 할 수 있습니다.
시리즈 문서 카탈로그
통합 버전 두보 프로젝트 기반 학습 (4 개) 추출 인터페이스 이후
부모 프로젝트를 만듭니다
프로젝트의 통합 관리를위한 부모 프로젝트 버전을 종속성으로 우리는 새로운 프로젝트 두보 부모를 만들 수 있습니다. (만의 pom.xml 파일을 유지할 수 있습니다 새로운 완성 된 프로젝트 수 있습니다)
치어 포장 pom.xml 파일 속성 및 해당 구성 매개 변수를 수정, 우리는 다음과 같이 패키지를 사용해야하기 전에 프로젝트를 구성 :
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<! -包版本管理-> <속성> <dubbo.version> 2.6.0 </dubbo.version> <zkclient.version> 0.10 </zkclient.version> <큐레이터 framework.version> 4.0.1 < /curator-framework.version> <fastjson.version> 1.2.46 </fastjson.version> <log4j.version> 1.2.17 </log4j.version> <SLF4J-api.version> 1.7.25 </ SLF4J-API .version> <공유지-lang3.version> 3.4 </commons-lang3.version> <그물코-all.version> 4.0.35.Final </netty-all.version> </ 속성> <! -依赖管理- -> <dependencyManagement> <종속성> <의존성> <의 groupId> com.alibaba </의 groupId> <artifactId를> 보행 </ artifactId를> <버전> $ {dubbo.version} </ 버전> </ 의존성> <의존성> <의 groupId> com.101tec </의 groupId> <artifactId를> zkclient </ artifactId를> <version>은 $ {zkclient.version} </ 버전 > </ 의존성> <의존성> <의 groupId> org.apache.curator </의 groupId> <artifactId를> 큐레이터 틀 </ artifactId를> <version>은 $ {큐레이터 framework.version} </ 버전> </ 의존성> < 의존성> 의존성> <의 groupId> com.alibaba </의 groupId> <artifactId를> fastjson </ artifactId를> <버전> $ {fastjson.version} </ 버전> </ 의존성> <의존성> <의 groupId> log4j에 </의 groupId> <artifactId를> log4j에 </ artifactId를> <version>은 $ {log4j.version} </ 버전> </ 의존성> <의존성> <의 groupId> org.slf4j < /의 groupId> <artifactId를> SLF4J-API </ artifactId를> <version>은 $ {SLF4J-api.version} </ 버전> </ 의존성> <의존성> <의 groupId> org.apache.commons </의 groupId> <artifactId를> 평민 - lang3 </ artifactId를> <버전> $ {공유지 - lang3.version} </ 버전> </ 의존성> <의존성> <의 groupId> io.netty </의 groupId> <artifactId를> 그물코 모두 </ artifactId를> <version>은 $ {그물코-all.version} </ 버전> </ 의존성> </ 의존성> </ dependencyManagement>
하위 프로젝트 만들기
공통 인터페이스 하위 프로젝트
마우스 오른쪽 단추로 클릭하고, 새로운 두보-API 프로젝트를 만들고, 두보 부모 프로그램을 공용 인터페이스로 (내장 된 인터페이스는 이곳에 언급)
1. 초과 구성을 제거,의 pom.xml 파일을 수정하고, 두보 부모 프로젝트를 의존
<? 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 https://maven.apache.org/xsd/maven-4.0.0.xsd "> <modelVersion> 4.0.0 </ modelVersion> <artifactId를> 보행-API </ artifactId를> <부모> <의 groupId> com.dubbo </의 groupId> <artifactId를> 보행 부모 </ artifactId를> <version>은 1.0 SNAPSHOT < / 버전> </ 부모> </ 프로젝트>
2. 하위 프로젝트의 이름을 추가, pom.xml 파일 두보 부모 프로젝트 구성 모듈을 수정
3. 마지막으로, 두보-API 프로젝트, 공공 서비스 인터페이스를 만들
에 대한 패키지 페널티 com.dubbo.service; / ** * 공중 인터페이스 : 서비스 게시자 * / 공용 인터페이스 DemoProviderService { 공공 문자열의 sayHello (문자열 이름); }
게시 서비스의 하위 프로젝트
마찬가지로, 두보-API에 정의 된 인터페이스를 구현, 서비스 제공 업체로, 새 프로젝트 두보 - 공급자를 만들, 두보 부모 프로그램을 마우스 오른쪽 단추로 클릭
1. 초과 구성을 제거,의 pom.xml 파일을 수정하고 부모 프로젝트 종속성에 정의 된 추가하는 동안, 두보 부모 프로젝트를 의존
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<? 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 https://maven.apache.org/xsd/maven-4.0.0.xsd ">
<modelVersion> 4.0.0 </ modelVersion>
<artifactId를> 보행 제공자 </ artifactId를>
<부모>
<의 groupId> com.dubbo </의 groupId>
<artifactId를> 보행 부모 </ artifactId를>
<version>은 1.0 SNAPSHOT < / 버전>
</ 부모>
<의존성>
<의존성>
<의 groupId> COM.보행 </의 groupId>
<artifactId를> 보행-API </ artifactId를>
</ 의존성>
<의존성>
<의 groupId> log4j에 </의 groupId>
<의 groupId> com.alibaba </의 groupId>
<artifactId를> 보행 </ artifactId를>
</ 의존성>
<의존성>
<의 groupId> com.101tec </의 groupId>
<artifactId를> zkclient </ artifactId를>
</ 의존성>
<의존성>
<의 groupId> org.apache.curator </의 groupId>
<artifactId를> 큐레이터 틀 </ artifactId를>
</ 의존성>
<의존성>
<의 groupId> com.alibaba </의 groupId>
<artifactId를> fastjson </ artifactId를>
</ 종속 >
<의존성>
<artifactId를> log4j에 </ artifactId를>
</ 의존성>
<의존성>
<의 groupId> org.slf4j </의 groupId>
<artifactId를> SLF4J-API </ artifactId를>
</ 의존성>
<의존성>
<의 groupId> org.apache.commons </의 groupId>
<artifactId를> 몬즈 lang3 </ artifactId를>
</ 의존성>
<의존성>
<의 groupId> io.netty </의 groupId>
<artifactId를> 그물코 모두 </ artifactId를>
</ 의존성>
</ 의존성>
</ 프로젝트>
2. (... 생략 스크린 샷을) 하위 프로젝트의 이름을 추가, pom.xml 파일 두보 부모 프로젝트 구성 모듈을 수정
3. 인터페이스 구현 클래스 DemoProviderServiceImpl 만들기
에 대한 패키지 페널티 com.dubbo.service.impl, 가져 오기 com.dubbo.service.DemoProviderService; / ** * 서비스를 달성하기 위해 내부 논리에 의해 게시 됨 * / 공용 클래스를 DemoProviderServiceImpl 를 구현 DemoProviderService { 공공 문자열의 sayHello (문자열 이름) { 반환 "웨이터 001" ; } }
4. 시험 등록 서비스를 실행하는 테스트 클래스를 만듭니다
테스트, 성공적으로 등록 된 서비스 제공을 실행합니다.
소비자 서비스 하위 프로젝트
마찬가지로, 소비자에게 서비스로, 새로운 두보 소비자 항목을 만들, 두보 부모 프로그램을 마우스 오른쪽 단추로 클릭 제공하는 서비스 두보 - 공급자에 대한 전화
부모 프로젝트 정의 종속성을 추가하는 동안 1, 과잉 구성을 제거,의 pom.xml 파일을 수정하고, 두보 부모 프로젝트를 의존 (코드 ...... 스크린 샷 생략)
2. (... 생략 스크린 샷을) 하위 프로젝트의 이름을 추가, pom.xml 파일 두보 부모 프로젝트 구성 모듈을 수정
테스트 클래스를 작성합니다, 제공되는 서비스 두보-제공 업체에 연락
4. 원격 호출 결과를 테스트 출력을 실행
마지막으로, 테스트 OK