Spring boot和dubbo整合——基于传统方式

4 篇文章 0 订阅

Spring boot和dubbo结合,比较简单,没有什么特殊配置。demo工程结构如下:


  1. 父pom.xml添加依赖
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.5.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
  2. 建立接口类
    public interface UserService {
        public String getUserName();
    }
  3. 提供者实现接口
    public class UserServiceImpl implements UserService {
        public String getUserName() {
            System.out.println("Being invoked");
            return "test user";
        }
    }
  4. 提供者dubbo配置
    	<!-- 声明需要暴露的服务接口 -->
        <dubbo:service interface="com.example.interfaces.UserService" ref="userService" protocol="dubbo">
        </dubbo:service>
    	<!-- 和本地bean一样实现服务 -->
    	<bean id="userService" class="com.example.UserServiceImpl" />
  5. 提供者application.yml配置
    server:
     port: 8090
     address: 127.0.0.1
     contextPath: /aaa

  6. 提供者启动类
    @ImportResource("classpath:dubbo/provider.xml")
    @SpringBootApplication  
    public class ApplicationProvider {  
      
        public static void main(String[] args) {  
            SpringApplication.run(ApplicationProvider.class, args);  
        }  
    }
  7. 消费者dubbo配置
    <dubbo:reference id="userService" interface="com.example.interfaces.UserService" />

  8. 消费者application.yml配置
    server:
     port: 8099
     address: 127.0.0.1
     contextPath: /
  9. 消费者
    @RestController  
    @EnableAutoConfiguration  
    public class Consumer {  
    	
    	@Autowired
    	private UserService userService;
          
        @RequestMapping("/")  
        String consume() {  
            return userService.getUserName();  
        }  
    }
  10. 消费者启动类
    @ImportResource("classpath:dubbo/consumer.xml")
    @SpringBootApplication  
    public class ApplicationConsumer {  
      
        public static void main(String[] args) {  
            SpringApplication.run(ApplicationConsumer.class, args);  
        }  
    } 
  11. 提供者消费者pom都依赖spring boot,zk,dubbo
    <dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    		
    		<dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.4.8</version>
            </dependency>
            <dependency>
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.3</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.5.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

总体看,dubbo没有什么新的配置,提供者消费者都依赖spring Boot包。

我使用本地zookeeper和dubbo admin,提供者启动类(ApplicationProvider)启动后,能够从dubbo admin看到提供者。

消费者启动类(ApplicationConsumer)启动,通过浏览器访问http://localhost:8099/,页面输出:test user,即调用成功。

代码打包下载地址:

http://download.csdn.net/download/earthhour/9938854

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值