`
huangjinjin520
  • 浏览: 68228 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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项目案例代码与注释详解

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

    dubbo示例demo

    dubbo 学习样例,详解命令注释,对新入门dubbo学习者有帮助

    springboot快速入门

    Mybatis 的完整 Web 案例,Spring Boot 注解实现整合 Redis 作为缓存,Spring Boot HTTP over JSON 的错误码异常处理,Spring Boot Dubbo applications.properties 配置清单,Springboot 整合 Dubbo/ZooKeeper 详解 ...

    springboot知识点整理

    1.5 入门案例详解 11 1.5.1 POM文件 11 1.5.2 主程序类,主入口类 12 1.6 使用Spring Initializer向导快速创建Spring Boot 16 2 Spring Boot配置 18 2.1 配置文件 18 2.2 YML语法 19 2.3 YML配置文件值获取 21 2.4 ...

    springboot学习

    chapter3-2-8:MyBatis注解配置详解 chapter3-2-9:使用Flyway来管理数据库版本 chapter3-2-10:使用LDAP来统一管理用户信息 chapter3-2-11:Spring Boot中增强对MongoDB的配置(连接池等) 事务管理 chapter3-3-1:...

    spring boot 实践学习案例,与其它组件整合

    - Spring Boot 数据库操作,包括SpringJDBC、JPA、Mybatis注解版 & XML版、MongoDB。其中,每个版本都有其对应的多数据源解决方案。 - springboot-caches - Spring Boot 缓存,包括redis、ehcache、spring-cache...

    JAVA高并发高性能高可用高扩展架构视频教程

    企业常用框架springMVC基于注解+xml配置方式实现链接 WEB服务器优化之Tomcat7性能调优 JVM概述 Java开发技术之(项目工程的日志管理) 数据库连接池原理详解 Java企业级框架之核心技术(反射) Java-Base64算法(创新_...

    spring boot 全面的样例代码

    - chapter9-2-1:[Spring Boot中使用Dubbo进行服务治理] - chapter9-2-2:[Spring Boot与Dubbo中管理服务依赖] ### Spring Cloud构建微服务架构 由于Spring Cloud偏宏观架构,Spring Boot偏微观细节,内容上越来越...

    java面试笔试资料包括JAVA基础核心知识点深度学习Spring面试题等资料合集.zip

    Java注解详解.docx Java线程池.docx JDK1.8Stream操作.docx JDK8有新特性.docx JVM堆三代.docx JVM的垃圾回收机制详解和调优.docx Spring源码分析之IoC.docx 关于线程和线程池的学习与使用.docx 深入理解JVM垃圾回收...

    spring-cloud-alibaba-component:Spring Cloud阿里巴巴组件示例

    cloud-starter-alicloud-oss是用于阿里云OSS的SpringBoot Starter,通过封装SDK实现对OSS的操作达博Dubbo是一个远程调用框架,用于实现方法的远程调用推荐使用ZooKeeper作为注册中心,当前使用Nacos会有各种问题西塔...

    全新JAVAEE大神完美就业实战课程 超150G巨制课程轻松实战JAVAEE课程 就业部分.txt

    day02_Dubbo介绍_dubbo框架整合_商品列表查询实现_分页_逆向工程 day03_Git day04_门户网站介绍&商城首页搭建&内容系统创建&CMS实现 day05_首页轮播图显示实现,Redis环境搭建,Redis实现缓存 day06_solr索引库...

Global site tag (gtag.js) - Google Analytics