dubbo注解使用详解

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

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

dubbo注解使用详解_第1张图片


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

dubbo注解使用详解_第2张图片


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

dubbo注解使用详解_第3张图片


实现类fooserviceImpl.java


dubbo注解使用详解_第4张图片

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 配置扫描内容


dubbo注解使用详解_第5张图片



  DubboServiceProvider

spring org.springframework.web.servlet.DispatcherServlet
1


spring
*

  org.springframework.web.context.ContextLoaderListener

   
contextConfigLocation classpath*:applicationContext.xml


applicationContext.xml 配置



dubbo注解使用详解_第6张图片



    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"> 
       

 
 

 
 
 

 


  


测试类Provider

dubbo注解使用详解_第7张图片

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包

dubbo注解使用详解_第8张图片


客户端项目:DubboServiceConsumer

dubbo注解使用详解_第9张图片


web.xml 配置扫描内容


dubbo注解使用详解_第10张图片

applicationContext.xml文件

dubbo注解使用详解_第11张图片



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"> 
       

 
 
 
 

   

测试类:Consumer


dubbo注解使用详解_第12张图片


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包

dubbo注解使用详解_第13张图片


获取海量视频

dubbo注解使用详解_第14张图片

  • dubbo注解使用详解_第15张图片
  • 大小: 14.1 KB
  • dubbo注解使用详解_第16张图片
  • 大小: 11.1 KB
  • dubbo注解使用详解_第17张图片
  • 大小: 23.2 KB
  • dubbo注解使用详解_第18张图片
  • 大小: 51.9 KB
  • dubbo注解使用详解_第19张图片
  • 大小: 65 KB
  • dubbo注解使用详解_第20张图片
  • 大小: 93.8 KB
  • dubbo注解使用详解_第21张图片
  • 大小: 55.8 KB
  • dubbo注解使用详解_第22张图片
  • 大小: 26.1 KB
  • dubbo注解使用详解_第23张图片
  • 大小: 21.6 KB
  • dubbo注解使用详解_第24张图片
  • 大小: 65 KB
  • dubbo注解使用详解_第25张图片
  • 大小: 111.5 KB
  • dubbo注解使用详解_第26张图片
  • 大小: 61.9 KB
  • dubbo注解使用详解_第27张图片
  • 大小: 26.1 KB
  • dubbo注解使用详解_第28张图片
  • 大小: 39.9 KB
  • 查看图片附件

你可能感兴趣的:(spring,dubbo)