spring 4.3.20.RELEASE
dubbo 2.6.2
curator-framework 2.12.0
註冊中心 zookeeper
jdk 1.8
一、服務提供方
1、pom.xml配置
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.20.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.6.2</version> </dependency> <!-- curator --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.12.0</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.7.20</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
2、接口
public interface HelloService { String sayHello(String name); }
3、接口實現類
public class HelloServiceImpl implements HelloService { public String sayHello(String name) { return "Hello " + name; } }
4、spring配置文件
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> <dubbo:application name="dubbo-provider"></dubbo:application> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry> <dubbo:protocol host="127.0.0.1" port="20880"></dubbo:protocol> <dubbo:service interface="com.kingtry.service.HelloService" ref="helloService"></dubbo:service> <bean id="helloService" class="com.kingtry.service.HelloServiceImpl"></bean> </beans>
5、log4j配置文件
log4j.rootLogger=INFO,console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd\u00A0HH:mm:ss,SSS}\u00A0[%t]\u00A0[%c]-[%p]\u00A0%m%n
6、註冊,並提供服務的測試類
public class DubboProviderTest { @Test public void test() { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); //使服務不中斷 try { System.in.read(); } catch (IOException e) { e.printStackTrace(); } } }
二、服務調用方
1、pom.xml文件
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.0.RELEASE</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.6.2</version> </dependency> <!-- curator --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.12.0</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> <version>1.7.20</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
2、 接口
//此處接口與提供方完全一致
public interface HelloService { String sayHello(String name); }
3、spring配置文件
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> <dubbo:application name="dubbo-consumber"></dubbo:application> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry> <dubbo:reference id="helloService" interface="com.kingtry.service.HelloService"></dubbo:reference> </beans>
4、log4j配置文件
log4j.rootLogger=INFO,console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd\u00A0HH:mm:ss,SSS}\u00A0[%t]\u00A0[%c]-[%p]\u00A0%m%n
5、調用服務的測試類
public class DubboConsumerTest { @Test public void test() { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); HelloService helloService = (HelloService)context.getBean("helloService"); System.out.println("----------------------------------------------------------"); System.out.println(helloService.sayHello("DanDan")); System.out.println("----------------------------------------------------------"); } }
三、輸出如下結果
---------------------------------------------------------- Hello DanDan ----------------------------------------------------------