`

dubbo注解使用详解

阅读更多
一、背景
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行。
当越来越的的接口与实现类的增加后,duboo的xml配置会越来越多,为了防止几百几千行的代码,减少开发人员配置xml的工作量,使用duboo的注解模式,减少配置多出问题多的可能性!

二、Dubbo使用案例
Duboo注解
接口类项目:DubboServiceInterface




仅仅是一个接口类项目!接口是普通接口!




注意:将接口类项目打包成jar分别放入服务端项目跟客户端项目!
服务端项目:DubboServiceProvider




实现类fooserviceImpl.java




package com.alibaba.dubbo.demo.imp;

import com.alibaba.dubbo.config.annotation.Service;
import com.alibaba.dubbo.demo.DemoService;
@Service(version="1.0")
public class FooServiceImpl implements DemoService {
@Override
public String sayHello(String name) {
        return "Hello " + name;
    }
}
web.xml 配置扫描内容




<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>DubboServiceProvider</display-name>
<servlet>
<servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*</url-pattern>
</servlet-mapping>
  <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
    <context-param>
<param-name>contextConfigLocation</param-name> <param-value>classpath*:applicationContext.xml</param-value>
</context-param>
</web-app>
applicationContext.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"> 
       
<!-- 服务端- 服务提供方 -->
  <!-- 公共信息,也可以用dubbo.properties配置 -->
  <dubbo:application name="test" />
<!--   链接zookeeper -->
  <dubbo:registry address="zookeeper://127.0.0.1:2181/" group="test"/>
  <dubbo:consumer timeout="5000"/>
  <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 -->
<dubbo:annotation package="com.unj.dubbotest.serviceImp" />
 
<!-- xml配置 : 声明需要暴露的服务接口 -->
<!--      <dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" /> -->
   <!-- xml配置 :和本地bean一样实现服务-->
<!--     <bean id="demoService" class="com.unj.dubbotest.serviceImp.FooServiceImpl" /> -->
</beans>
测试类Provider



package com.alibaba.dubbo.test;

import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Provider {
@Before
public void setUp() throws Exception {
}
@Test
public void testMain() throws IOException {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] { "applicationContext.xml" });
context.start();
System.in.read();// 按任意键退出
}
}
lib下的jar包




客户端项目:DubboServiceConsumer




web.xml 配置扫描内容




applicationContext.xml文件




<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context"
    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.properties配置 -->
  <dubbo:application name="xx" />
  <dubbo:registry address="zookeeper://127.0.0.1:2181" />
  <dubbo:consumer timeout="5000"/>
<!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 -->
    <dubbo:annotation package="com.unj.dubbotest.action" />
</beans>
测试类:Consumer





package com.unj.dubbotest.action;
import java.io.IOException;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.demo.DemoService;
public class Consumer{
@Reference(version = "1.0")
private DemoService demoService;

@Test
public  void mainTest() throws IOException {
ClassPathXmlApplicationContext context =new ClassPathXmlApplicationContext(
new String[] {"applicationContext.xml"});
        context.start();
         demoService = (DemoService)context.getBean("demoService"); // 获取远程服务代理
        String hello = demoService.sayHello("world"); // 执行远程方法
        System.out.println( hello ); // 显示调用结果
    }
}
lib下的jar包




获取海量视频



  • 大小: 14.1 KB
  • 大小: 11.1 KB
  • 大小: 23.2 KB
  • 大小: 51.9 KB
  • 大小: 65 KB
  • 大小: 93.8 KB
  • 大小: 55.8 KB
  • 大小: 26.1 KB
  • 大小: 21.6 KB
  • 大小: 65 KB
  • 大小: 111.5 KB
  • 大小: 61.9 KB
  • 大小: 26.1 KB
  • 大小: 39.9 KB
0
0
分享到:
评论
2 楼 huangjinjin520 2018-03-02  
somefuture 写道
除了单词写错了 其他挺好的

已更正
1 楼 somefuture 2018-02-23  
除了单词写错了 其他挺好的

相关推荐

    Dubbo分布式框架详解.rar

    分布式服务框架Dubbo是阿里...总的来说,Dubbo和Zookeeper的结合使用,为开发者构建高可用、高性能的分布式服务提供了强大的工具。在实践中,需要不断学习和优化,以充分利用它们的优势,解决分布式系统中的各种挑战。

    dubbo示例代码dubbo-sample

    【Dubbo 示例代码详解】 Dubbo 是阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它主要提供了RPC(远程过程调用)服务,并且包含了服务注册与发现、负载均衡、容错处理、监控等全面的服务治理功能。本示例...

    Apache Dubbo:Dubbo配置与参数详解

    同样地,这也可以在XML配置文件中使用`&lt;dubbo:reference&gt;`标签或在代码中使用`@Reference`注解来完成。 - **使用`@Reference`注解**: ```java @Reference(version = "1.0.0") private DemoService demoService;...

    dubbo项目案例代码与注释详解

    《Dubbo项目案例代码与注释详解》 在IT行业中,Dubbo是一个广泛使用的高性能、轻量级的服务治理框架,由阿里巴巴开源并维护。它主要应用于分布式系统的微服务架构,提供服务注册、发现、调用、负载均衡等功能,极大...

    Dubbo高级视频教程

    - **dubbo.xml配置文件详解**:深入理解各种配置项的意义和作用,如应用、注册中心、协议、服务提供者和服务消费者配置。 - **属性配置方式**:属性可以通过XML、Properties文件或注解方式进行配置。 - **高级配置...

    简单dubbo框架使用

    3. **调用远程服务:** 通过Dubbo提供的API或者Spring的`@Autowired`注解,注入服务接口实例,即可在业务代码中调用远程服务。 4. **处理结果:** 调用服务后,Consumer会接收到Provider返回的结果,根据业务需求...

    dubbo生产者消费者使用demo

    《Dubbo生产者消费者使用Demo详解》 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,已经成为Java世界中分布式服务的重要选择。本文将深入解析如何在实际项目中运用Dubbo,通过一个简单的生产者消费...

    dubboDemo实例

    【分布式开发】 DubboDemo实例详解 在当今的互联网时代,分布式系统已经成为企业级应用的主流架构,其中Dubbo作为一款高性能、轻量级的Java服务框架,深受开发者喜爱。本篇文章将深入探讨如何通过"DubboDemo实例"来...

    springboot-dubbo-demo.zip

    《SpringBoot整合Dubbo实践详解》 在现代的微服务架构中,SpringBoot与Dubbo的结合使用成为了许多开发者的首选。本项目“springboot-dubbo-demo”旨在演示如何利用SpringBoot的便捷性与Dubbo的服务治理能力,构建一...

    dubbo的简单实现

    #### Dubbo架构详解 Dubbo采用了典型的RPC架构,主要包括以下几个组成部分: - **Provider**:即服务提供者,负责提供服务。 - **Consumer**:即服务消费者,消费服务提供者发布的服务。 - **Registry**:即注册...

    dubbo-user-book

    本手册将详细介绍Dubbo的安装与配置,帮助开发者深入掌握其工作机制和使用技巧。 ### Dubbo的架构与基本概念 Dubbo的核心概念包括服务提供者(Provider)、服务消费者(Consumer)、注册中心(Registry)和监控...

    尚硅谷Dubbo.zip

    7. **Dubbo API详解**:Dubbo提供了丰富的API和配置选项,如服务暴露(`dubbo:service`),服务引用(`dubbo:reference`),以及服务过滤器、服务拦截器等扩展点,便于定制化需求。 8. **实战演练**:尚硅谷的课程...

    dubbo中文文档说明

    - **注解配置**:如何使用注解来简化Dubbo服务的声明。 #### 六、Dubbo示例与高级功能 - **启动时检查**:如何在服务启动时进行健康检查。 - **集群容错**:提供了多种容错策略,如Failover、Failfast等,以处理...

    dubbo框架搭建文档

    【Dubbo框架搭建详解】 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的Java RPC框架,旨在简化分布式系统开发,实现服务的透明调用。它提供了丰富的服务治理功能,包括服务注册与发现、负载均衡、容错机制、监控等...

    springboot-dubbo-demo-xml.zip

    《SpringBoot整合Dubbo XML配置详解》 在现代企业级应用开发中,SpringBoot和Dubbo的结合使用已经成为一种常见的架构模式。本示例项目"springboot-dubbo-demo-xml.zip"旨在展示如何在SpringBoot项目中通过XML配置...

    dubbo安装配置说明

    【Dubbo安装配置详解】 Dubbo是一款高性能、轻量级的Java开源服务框架,由阿里巴巴公司开发并维护,主要用于实现微服务之间的远程调用。它提供了服务治理、监控和服务发现等功能,是分布式系统架构中的重要组件。在...

    Dubbo(二)------Dubbo入门示例代码

    【Dubbo入门示例代码详解】 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,已经成为分布式系统中的重要组件。本篇将深入介绍如何通过一个简单的示例来入门Dubbo的使用,帮助开发者理解其核心...

    简单的Dubbo项目 通俗易懂

    【Dubbo项目开发详解】 Dubbo,作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,是Java世界的分布式服务框架。本教程将引导你逐步理解并搭建一个基础的Dubbo项目,帮助你从入门到熟悉其核心概念,如生产者、...

    dubbo服务接口

    《Dubbo服务接口详解》 在分布式系统架构中,服务接口的设计与实现是至关重要的环节。Dubbo,作为阿里巴巴开源的一款高性能、轻量级的服务治理框架,为开发者提供了强大的服务接口支持。本文将深入探讨Dubbo服务...

Global site tag (gtag.js) - Google Analytics