Spring-Boot+Dubbo生产者与消费者配置
一、生产者配置
1、提供计算的接口类
package com.yang;
public interface ComputeService {
Integer add(int a, int b);
}
2、接口的实现类
package com.yang;
import org.springframework.stereotype.Component;
@Component
public class ComputeServiceImpl implements ComputeService {
@Override
public Integer add (int a, int b) {
return a + b;
}
}
3、提供接口注册及配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns ="http://www.springframework.org/schema/beans"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo ="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd" >
<dubbo:application name ="compute-service" />
<dubbo:registry id ="zookeeper" protocol ="zookeeper" address ="zookeeper://192.168.1.105:2181?backup=192.168.1.106:2181,192.168.1.107:2181" />
<dubbo:protocol name ="dubbo" port ="20880" />
<dubbo:service interface ="com.yang.ComputeService" ref ="computeServiceImpl"
version ="1.0" registry ="zookeeper" />
</beans >
4、启动程序中加入dubbo配置文件
package com.yang;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource ({"classpath:dubbo-provider.xml" })
public class DubboSpringbootProviderApplication {
public static void main (String[] args) {
SpringApplication.run(DubboSpringbootProviderApplication.class, args);
}
}
二、消费者配置
1、声明提供者同名接口
package com.yang;
public interface ComputeService {
Integer add(int a, int b);
}
2、配置消费者信息
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns ="http://www.springframework.org/schema/beans"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo ="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd" >
<dubbo:application name ="consumer" />
<dubbo:registry id ="zookeeper" protocol ="zookeeper" address ="zookeeper://192.168.1.105:2181?backup=192.168.1.106:2181,192.168.1.107:2181" />
<dubbo:reference id ="computeService" interface ="com.yang.ComputeService"
check ="false" version ="1.0" url =""
registry ="zookeeper" protocol ="dubbo" timeout ="15000" />
</beans >
3、启动主程序中加入配置文件
package com.yang;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource ({"classpath:dubbo-consumer.xml" })
public class DubboSpringbootConsumerApplication {
public static void main (String[] args) {
SpringApplication.run(DubboSpringbootConsumerApplication.class, args);
}
}
4、测试类
package com .yang
import org.junit .Assert
import org.junit .Test
import org.junit .runner .RunWith
import org.springframework .beans .factory .annotation .Autowired
import org.springframework .boot .test .context .SpringBootTest
import org.springframework .test .context .junit 4.SpringRunner
@RunWith(SpringRunner.class )
@SpringBootTest
public class DubboSpringbootConsumerApplicationTests {
@Autowired
ComputeService computeService
@Test
public void contextLoads() {
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" )
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" )
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" )
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" )
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" )
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" )
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" )
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" )
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" )
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" )
System.out .println ("Dubbo消费结果为:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。" +computeService.add (100 , 200 ))
Assert.assertEquals ("compute-service:add" , new Integer(3 ), computeService.add (1 , 2 ))
Assert.assertEquals ("compute-service:add" , new Integer(5 ), computeService.add (1 , 2 ))
}
}