zoukankan      html  css  js  c++  java
  • Maven配置dubbo环境简单例子

    环境准备:

      1.zookeeper:zookeeper-3.4.6版本

      2.maven:apache-maven-3.3.9版本

      3.dubbo监控工具:dubbo-admin-2.5.4-SNAPSHOT 一个war包,用户查看注册中心的提供者和消费者

    项目结构:

     dubbo-provider-test

      |--src/main/java 程序目录

        |--com.wengen.dubbo_provider_test.service      提供者接口目录

          |--DomeService.java

        |--com.wengen.dubbo_provider_test.service.impl  提供者接口实现目录

          |--DomeServiceImpl.java

       |--src/test/java 测试目录

        |--com.wengen.dubbo_provider_test

          |--DomeServiceTest.java  提供者启动类

          |--DomeServiceConsumerTest.java 消费者启动类

      |--src/main/resources

        |--spring.xml spring 配置文件

        |--config

          |--provider.xml 提供者配置文件

          |--consumer.xml 消费者配置文件

      |--pom.xml maven的pom文件

    源码:

    pom.xml

    
    
      1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      3   <modelVersion>4.0.0</modelVersion>
      4 
      5   <groupId>com.wengen</groupId>
      6   <artifactId>dubbo-provider-test</artifactId>
      7   <version>0.0.1-SNAPSHOT</version>
      8   <packaging>jar</packaging>
      9 
     10   <name>dubbo-provider-test</name>
     11   <url>http://maven.apache.org</url>
     12     
     13   <properties>
     14         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     15         <druid.version>1.0.18</druid.version>
     16         <jaxen.version>1.1.1</jaxen.version>
     17         <lombok.version>1.14.4</lombok.version>
     18         <slf4j.version>1.7.5</slf4j.version>
     19         <dom4j.version>1.6.1</dom4j.version>
     20         <spring.version>4.2.5.RELEASE</spring.version>
     21         <commons-httpclient.version>3.0.1</commons-httpclient.version>
     22         <dubbo.version>2.5.2</dubbo.version>
     23         <zkclient.version>0.1</zkclient.version>
     24         <project.junit.version>4.8.2</project.junit.version>
     25         <spring.amqp.version>1.2.0.RELEASE</spring.amqp.version>
     26         <spring.version>4.2.5.RELEASE</spring.version>
     27         <spring-core.version>4.2.5.RELEASE</spring-core.version>
     28         <aspectj.version>1.7.0</aspectj.version>
     29         <aopalliance.version>1.0</aopalliance.version>
     30         <asm.version>3.1</asm.version>
     31         <mybatis.version>3.2.8</mybatis.version>
     32     </properties>
     33 
     34 
     35   <dependencies>
     36   
     37   
     38     <dependency>
     39       <groupId>junit</groupId>
     40       <artifactId>junit</artifactId>
     41       <version>3.8.1</version>
     42       <scope>test</scope>
     43     </dependency>
     44     
     45      <dependency>
     46             <groupId>com.github.sgroschupf</groupId>
     47             <artifactId>zkclient</artifactId>
     48             <version>${zkclient.version}</version>
     49         </dependency>
     50     
     51      <dependency>
     52             <groupId>com.alibaba</groupId>
     53             <artifactId>dubbo</artifactId>
     54             <version>${dubbo.version}</version>
     55             <exclusions>
     56                 <exclusion>
     57                     <groupId>org.springframework</groupId>
     58                     <artifactId>spring</artifactId>
     59                 </exclusion>
     60             </exclusions>
     61         </dependency>
     62     
     63     <dependency>
     64             <groupId>org.springframework</groupId>
     65             <artifactId>spring-context</artifactId>
     66             <version>${spring.version}</version>
     67         </dependency>
     68         <dependency>
     69             <groupId>org.springframework</groupId>
     70             <artifactId>spring-aop</artifactId>
     71             <version>${spring.version}</version>
     72         </dependency>
     73         <dependency>
     74             <groupId>org.springframework</groupId>
     75             <artifactId>spring-tx</artifactId>
     76             <version>${spring.version}</version>
     77         </dependency>
     78         <dependency>
     79             <groupId>org.springframework</groupId>
     80             <artifactId>spring-context-support</artifactId>
     81             <version>${spring.version}</version>
     82         </dependency>
     83         <dependency>
     84             <groupId>org.springframework</groupId>
     85             <artifactId>spring-jdbc</artifactId>
     86             <version>${spring.version}</version>
     87         </dependency>
     88         <dependency>
     89             <groupId>org.springframework</groupId>
     90             <artifactId>spring-web</artifactId>
     91             <version>${spring.version}</version>
     92         </dependency>
     93         <dependency>
     94             <groupId>org.springframework</groupId>
     95             <artifactId>spring-webmvc</artifactId>
     96             <version>${spring.version}</version>
     97         </dependency>
     98         <dependency>
     99             <groupId>org.springframework</groupId>
    100             <artifactId>spring-aspects</artifactId>
    101             <version>${spring.version}</version>
    102         </dependency>
    103         <dependency>
    104             <groupId>org.springframework</groupId>
    105             <artifactId>spring-beans</artifactId>
    106             <version>${spring.version}</version>
    107         </dependency>
    108         <dependency>
    109             <groupId>org.springframework</groupId>
    110             <artifactId>spring-core</artifactId>
    111             <version>${spring.version}</version>
    112         </dependency>
    113         <dependency>
    114             <groupId>org.springframework</groupId>
    115             <artifactId>spring-jms</artifactId>
    116             <version>${spring.version}</version>
    117         </dependency>
    118         <dependency>
    119             <groupId>org.springframework</groupId>
    120             <artifactId>spring-expression</artifactId>
    121             <version>${spring.version}</version>
    122         </dependency>
    123         <dependency>
    124             <groupId>org.springframework</groupId>
    125             <artifactId>spring-instrument</artifactId>
    126             <version>${spring.version}</version>
    127         </dependency>
    128         <dependency>
    129             <groupId>org.springframework</groupId>
    130             <artifactId>spring-orm</artifactId>
    131             <version>${spring.version}</version>
    132         </dependency>
    133         <dependency>
    134             <groupId>org.springframework</groupId>
    135             <artifactId>spring-oxm</artifactId>
    136             <version>${spring.version}</version>
    137         </dependency>
    138         <dependency>
    139             <groupId>org.springframework</groupId>
    140             <artifactId>spring-test</artifactId>
    141             <version>${spring.version}</version>
    142             <scope>test</scope>
    143         </dependency>
    144         <dependency>
    145             <groupId>org.springframework.amqp</groupId>
    146             <artifactId>spring-rabbit</artifactId>
    147             <version>${spring.amqp.version}</version>
    148         </dependency>
    149     
    150   </dependencies>
    151 </project>
    View Code
    
    

    spring.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
     4        xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
     5        xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"
     6        xsi:schemaLocation="
     7         http://www.springframework.org/schema/beans
     8         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
     9         http://www.springframework.org/schema/tx
    10         http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
    11         http://www.springframework.org/schema/aop
    12         http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
    13         http://www.springframework.org/schema/context
    14         http://www.springframework.org/schema/context/spring-context-3.1.xsd
    15         http://www.springframework.org/schema/mvc 
    16         http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
    17         http://www.springframework.org/schema/task 
    18         http://www.springframework.org/schema/task/spring-task-3.1.xsd">
    19 
    20     <!-- 自动扫描bean,把作了注解的类转换为bean -->
    21     <context:component-scan base-package="com.wengen.dubbo_provider_test.service">
    22         <context:include-filter type="annotation"
    23                                 expression="com.alibaba.dubbo.config.annotation.Service" />
    24     </context:component-scan>
    25 
    26     <!-- 该 BeanPostProcessor 将自动起作用,对标注 @Autowired 的 Bean 进行自动注入 -->
    27     <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />
    28     <bean class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />
    29     <!-- 强制使用CGLIB代理 -->
    30     <aop:aspectj-autoproxy proxy-target-class="true" />
    31     <task:annotation-driven />
    32     <context:annotation-config />
    33     <import resource="classpath:/config/provider.xml" />
    34 </beans>
    View Code

    提供者配置文件:provider.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
     5     xsi:schemaLocation="http://www.springframework.org/schema/beans        
     6     http://www.springframework.org/schema/beans/spring-beans.xsd       
     7      http://code.alibabatech.com/schema/dubbo        
     8      http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
     9      
    10       <!-- 提供方应用信息,用于计算依赖关系 -->
    11      <dubbo:application name="dubbo-provider-test" />
    12      
    13      <!-- 使用multicast广播注册中心暴露服务地址 -->
    14      <dubbo:registry protocol="zookeeper"  address="127.0.0.1:2181" />
    15      
    16       <!-- 用dubbo协议在20880端口暴露服务 -->
    17         <dubbo:protocol name="dubbo" port="20881" />
    18         
    19         <!-- 声明需要暴露的服务接口 -->
    20         <dubbo:service interface="com.wengen.dubbo_provider_test.service.DomeService" ref="domeservice"/>
    21         
    22         <!-- 和本地bean一样实现服务 -->
    23         <bean id="domeservice" class="com.wengen.dubbo_provider_test.service.impl.DomeServiceImpl"/>
    24 </beans>
    25  
    View Code

    消费者配置文件:consumer.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
     5     xsi:schemaLocation="http://www.springframework.org/schema/beans        
     6     http://www.springframework.org/schema/beans/spring-beans.xsd        
     7     http://code.alibabatech.com/schema/dubbo        
     8     http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
     9     
    10     <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    11     <dubbo:application name="dubbo-consumer-test"  />
    12     
    13     <!-- 使用multicast广播注册中心暴露服务地址 -->
    14      <dubbo:registry protocol="zookeeper"  address="127.0.0.1:2181" />
    15      
    16       <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    17     <dubbo:reference id="demoService" interface="com.wengen.dubbo_provider_test.service.DomeService" />
    18     
    19     </beans>
    20  
    View Code

    提供者接口:DomeService.java

    1 package com.wengen.dubbo_provider_test.service;
    2 
    3 public interface DomeService {
    4     String sayHello(String name);
    5 }
    View Code

    提供者接口实现:DomeServiceImpl.java

     1 package com.wengen.dubbo_provider_test.service.impl;
     2 
     3 import com.wengen.dubbo_provider_test.service.DomeService;
     4 
     5 public class DomeServiceImpl implements DomeService {
     6 
     7     @Override
     8     public String sayHello(String name) {
     9     
    10         return "Helle" + name;
    11     }
    12 
    13 
    14 }
    View Code

    提供者启动类:DomeServiceTest.java

     1 package com.wengen.dubbo_provider_test;
     2 
     3 import java.io.IOException;
     4 
     5 import org.springframework.context.support.ClassPathXmlApplicationContext;
     6 
     7 public class DomeServiceTest {
     8 
     9     public static void main(String[] args)throws IOException {
    10         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"classpath:spring.xml"});
    11         context.start();
    12             //任意键退出
    13             System.in.read();
    14     }
    15 
    16 }
    View Code

    消费者启动类:DomeServiceConsumerTest.java

     1 package com.wengen.dubbo_provider_test;
     2 
     3 import java.io.IOException;
     4 
     5 import org.springframework.context.support.ClassPathXmlApplicationContext;
     6 
     7 import com.wengen.dubbo_provider_test.service.DomeService;
     8 
     9 public class DomeServiceConsumerTest  {
    10     public static void main(String []args) throws IOException{
    11         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext (new String []{"classpath:/config/consumer.xml"});
    12         context.start();
    13         DomeService dome = (DomeService) context.getBean("demoService");
    14         String hello = dome.sayHello(" ADSADS");
    15         System.out.println(hello);
    16     }
    17 }
    View Code

    dubbo监控工具安装请参考:http://www.cnblogs.com/coreyjk/p/6560085.html

    业精于勤 ==不想升职加薪的码农不是好码农==
  • 相关阅读:
    nginx-1.8.1的安装
    ElasticSearch 在3节点集群的启动
    The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
    sqoop导入导出对mysql再带数据库test能跑通用户自己建立的数据库则不行
    LeetCode 501. Find Mode in Binary Search Tree (找到二叉搜索树的众数)
    LeetCode 437. Path Sum III (路径之和之三)
    LeetCode 404. Sum of Left Leaves (左子叶之和)
    LeetCode 257. Binary Tree Paths (二叉树路径)
    LeetCode Questions List (LeetCode 问题列表)- Java Solutions
    LeetCode 561. Array Partition I (数组分隔之一)
  • 原文地址:https://www.cnblogs.com/coreyjk/p/6559915.html
Copyright © 2011-2022 走看看