Dubbo-HelloWorld
阿新 • • 發佈:2019-01-10
dubbo.registry.address=zookeeper://localhost:2181
import java.util.List;
public interface SampleService {
String sayHello(String name);
public List getUsers();
}
import java.util.ArrayList; import java.util.List; import bhz.dubbo.sample.provider.SampleService; public class SampleServiceImpl implements SampleService { public String sayHello(String name) { return "Hello " + name; } public List getUsers() { List list = new ArrayList(); User u1 = new User(); u1.setName("jack"); u1.setAge(20); u1.setSex("m"); User u2 = new User(); u2.setName("tom"); u2.setAge(21); u2.setSex("m"); User u3 = new User(); u3.setName("rose"); u3.setAge(19); u3.setSex("w"); list.add(u1); list.add(u2); list.add(u3); return list; } }
import java.io.Serializable; public class User implements Serializable { private static final long serialVersionUID = 1L; private int age; private String name; private String sex; public User() { super(); } public User(int age, String name, String sex) { super(); this.age = age; this.name = name; this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
<?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 "> <!-- 具體的實現bean --> <bean id="sampleService" class="com.dubbo.sample.provider.impl.SampleServiceImpl" /> <!-- 提供方應用資訊,用於計算依賴關係 --> <dubbo:application name="sample-provider" /> <!-- 使用zookeeper註冊中心暴露服務地址 --> <dubbo:registry address="zookeeper://localhost:2181" /> <!-- 用dubbo協議在20880埠暴露服務 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 宣告需要暴露的服務介面 寫操作可以設定retries=0 避免重複呼叫SOA服務 --> <dubbo:service retries="0" interface="com.dubbo.sample.provider.SampleService" ref="sampleService" /> </beans>
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Provider {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] { "sample-provider.xml" });
context.start();
System.in.read(); // 為保證服務一直開著,利用輸入流的阻塞來模擬
}
}
import java.util.List;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import bhz.dubbo.sample.provider.SampleService;
public class Consumer {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] { "sample-consumer.xml" });
context.start();
SampleService sampleService = (SampleService) context.getBean("sampleService");
String hello = sampleService.sayHello("tom");
System.out.println(hello);
List list = sampleService.getUsers();
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
System.in.read();
}
}
import java.util.List;
public interface SampleService {
String sayHello(String name);
public List getUsers();
}
<?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="sample-consumer" />
<dubbo:registry address="zookeeper://localhost:2181" />
<!-- 生成遠端服務代理,可以像使用本地bean一樣使用demoService 檢查級聯依賴關係 預設為true 當有依賴服務的時候,需要根據需求進行設定 -->
<dubbo:reference id="sampleService" check="false"
interface="com.dubbo.sample.provider.SampleService" />
</beans>