Spring 集成dubbo

一、书写接口项目提供jar包
Spring 集成dubbo_第1张图片
二、private项目

1、引用接口jar包和dubbo相关jar包

<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>dubbo</artifactId>
      <version>2.5.8</version>
    </dependency>
    <dependency>
      <groupId>com.101tec</groupId>
      <artifactId>zkclient</artifactId>
      <version>0.8</version>
    </dependency>  
    <dependency>
      <groupId>com.ucia.demo</groupId>
	  <artifactId>user-clent</artifactId>
      <version>1.0.0-RELEASE</version>
</dependency>

2、添加dubbo.xml配置文件

<?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">
    <!--对服务命名,要求name必须唯一-->
    <dubbo:application name="dubboDemo"/>
    <!--配置dubbo服务类型以及监听端口-->
    <dubbo:protocol name="dubbo" port="20880"/>
    <!--配置zookeeper注册中心-->
    <dubbo:registry protocol="zookeeper" address="10.10.10.10:2181,10.10.10.11:2181,10.10.10.12:2181"/>
<!--    	 <dubbo:registry protocol="zookeeper" address="10.18.3.67:2181,10.18.3.67:2182,10.18.3.67:2183"/>
 -->    <!--暴露服务-->
    <dubbo:service interface="com.ucia.demo.service.IUserService" ref="userServer"/>


</beans>

3、在application.xml配置文件中配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="userServer" class="com.ucia.service.userService"/>
    <import resource="dubbo.xml"/>
</beans>

4、书写userService.java

package com.ucia.service;
import java.util.Arrays;
import java.util.List;
import com.ucia.demo.entity.User;
import com.ucia.demo.service.IUserService;
public class userService implements IUserService{
	public User queryUserById(Integer id) {	
		return new User(1,"张三");
	}
	public String deleteUserById(Integer id) {
		System.out.println("删除用户:"+id);
		return "用户已删除";
	}
	public List<User> queryAll() {
		// TODO Auto-generated method stub
		return Arrays.asList(new User(1,"zhangsan"),new User(2,"lisi"));
	}

}

5、设置启动类StartServer.java

package com.ucia.service;
import java.io.IOException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class StartServer {
    public static void main(String[] args) throws IOException {
        ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        System.out.println("启动服务工厂 A...");
        System.in.read();
    }
}

三、conmuser项目
与二中1、2、3、步骤相同
4、测试StartConsumer类

package com.ucia.demo;
import java.io.IOException;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.ucia.demo.entity.User;
import com.ucia.demo.service.IUserService;
public class StartConsumer {
	public static void main(String[] args) throws IOException {
        ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        IUserService userServer = (IUserService) ctx.getBean("userServer");
        System.out.println(userServer.getClass());
        for(int i=0;i<1000000;i++){
            User user = userServer.queryUserById(1);
            String aa=userServer.deleteUserById(1);
            List<User> queryAll = userServer.queryAll();
            System.out.println(queryAll);
            System.out.println(aa);
            System.out.print(user);
            System.out.println("--------->"+i);
        }
    }
}

你可能感兴趣的:(dubbo)