zoukankan      html  css  js  c++  java
  • Spring boot配置Dubbo三种方式

    方式一
    使用注解的方式

    导入dubbo-starter
    在application.properties配置属性

    使用@Service暴露服务
    使用@Reference引用服务

    使用@EnableDubbo开启注解Dubbo功能
    或者配置包扫描

    dubbo.scan.base-packages=com.atguigu.gmall
    1
    开启注解、包扫描,配置一个即可

    这种方式
    可以在@Service、@Reference注解中配置属性
    属于类的配置,无法精确到方法的配置

    方式二
    使用dubbo的xml配置文件

    导入dubbo-starter
    使用@ImportResource导入dubbo的配置文件即可

    @ImportResource(locations="classpath:provider.xml")
    1
    dubbo的配置文件,之前怎么写
    现在还是怎么写,没有特殊要求

    这种方式
    可以做到方法的精确配置

    方式三
    使用注解API的方式

    将每一个组件手动创建到容器中
    让dubbo来扫描其他的组件

    参考文档
    http://dubbo.apache.org/zh-cn/docs/user/configuration/annotation.html

    配置类示例

    package com.atguigu.gmall.config;

    import java.util.ArrayList;
    import java.util.List;

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;

    import com.alibaba.dubbo.config.ApplicationConfig;
    import com.alibaba.dubbo.config.MethodConfig;
    import com.alibaba.dubbo.config.MonitorConfig;
    import com.alibaba.dubbo.config.ProtocolConfig;
    import com.alibaba.dubbo.config.ProviderConfig;
    import com.alibaba.dubbo.config.RegistryConfig;
    import com.alibaba.dubbo.config.ServiceConfig;
    import com.atguigu.gmall.service.UserService;

    @Configuration
    public class MyDubboConfig {

        //<dubbo:application name="boot-user-service-provider"></dubbo:application>
        @Bean
        public ApplicationConfig applicationConfig() {
            ApplicationConfig applicationConfig = new ApplicationConfig();
            applicationConfig.setName("boot-user-service-provider");
            return applicationConfig;
        }

        //<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
        @Bean
        public RegistryConfig registryConfig() {
            RegistryConfig registryConfig = new RegistryConfig();
            registryConfig.setProtocol("zookeeper");
            registryConfig.setAddress("127.0.0.1:2181");
            return registryConfig;
        }

        //<dubbo:protocol name="dubbo" port="20882"></dubbo:protocol>
        @Bean
        public ProtocolConfig protocolConfig() {
            ProtocolConfig protocolConfig = new ProtocolConfig();
            protocolConfig.setName("dubbo");
            protocolConfig.setPort(20882);
            return protocolConfig;
        }

        /**
         *<dubbo:service interface="com.atguigu.gmall.service.UserService"
            ref="userServiceImpl01" timeout="1000" version="1.0.0">
            <dubbo:method name="getUserAddressList" timeout="1000"></dubbo:method>
        </dubbo:service>
         */
        @Bean
        public ServiceConfig<UserService> userServiceConfig(UserService userService){
            ServiceConfig<UserService> serviceConfig = new ServiceConfig<>();
            serviceConfig.setInterface(UserService.class);
            serviceConfig.setRef(userService);
            serviceConfig.setVersion("1.0.0");

            //配置每一个method的信息
            MethodConfig methodConfig = new MethodConfig();
            methodConfig.setName("getUserAddressList");
            methodConfig.setTimeout(1000);

            //将method的设置关联到service配置中
            List<MethodConfig> methods = new ArrayList<>();
            methods.add(methodConfig);
            serviceConfig.setMethods(methods);

            //ProviderConfig
            //MonitorConfig

            return serviceConfig;
        }

    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    配置包扫描路径

    可以,使用@DubboComponentScan注解
    也可以,使用@EnableDubbo注解

    @EnableDubbo注解
    其实,里面配置的就是@DubboComponentScan注解


    扫描包路径

    @EnableDubbo(scanBasePackages="com.atguigu.gmall")
    1
    或者

    @DubboComponentScan(basePackages ="com.atguigu.gmall")
    1
    生产者、消费者
    使用@Service、@Reference注解配置

    转自 https://blog.csdn.net/nangeali/article/details/82527039

  • 相关阅读:
    一篇说为什么有些人穷,有人却可以致富的亲身经历的文章
    jquery的隐式类型转换
    git学习笔记02-创建一个仓库提交一个文件-原来就是这么简单
    git学习笔记01-git最基本的工作原理分布式
    git-github-svn你们都是个什么东东
    工作中遇到的问题,虽然很白痴但是你可能也会遇到-2016-10-24
    你只有非常努力,才会看起起来毫不费力!
    jQuery的.click,.bind,.unbind,.on,.off,.delegate,.undelegate
    jQuery里面的普通绑定事件和on委托事件
    Phantomjs 在cmd命令行显示中文乱码
  • 原文地址:https://www.cnblogs.com/tiancai/p/14849989.html
Copyright © 2011-2022 走看看