springBoot整合dubbo

1、pom.xml

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>${dubbo-springboot.version}</version>
        </dependency>    

 2、新建config包

import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.spring.ReferenceBean;
import com.alibaba.dubbo.config.spring.context.annotation.DubboComponentScan;
import com.netease.it.gaia.asset.common.service.GaiaAssetService;
import com.netease.it.gaia.user.common.service.GaiaLocationCodeService;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author tobiasy
 * @date 2018/11/6
 */
@Configuration
@DubboComponentScan("com.netease.it.springboot")
public class DubboConfig {

    /**
     * 当前应用配置
     */
    @Bean("springboot-dubbo")
    public ApplicationConfig applicationConfig() {
        ApplicationConfig applicationConfig = new ApplicationConfig();
        applicationConfig.setName("springboot-dubbo");
        return applicationConfig;
    }

    /**
     * 当前连接注册中心配置
     */
    @Bean("commonRegister")
    @Qualifier("commonRegister")
    public RegistryConfig commonRegister() {
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setId("dev");
        registryConfig.setProtocol("zookeeper");
        registryConfig.setAddress("10.246.84.23:4180,10.246.84.23:4181,10.246.84.23:4182");
        registryConfig.setTimeout(60000);
        return registryConfig;
    }

    @Bean("testRegister")
    public RegistryConfig testRegister() {
        RegistryConfig registryConfig = new RegistryConfig();
        registryConfig.setId("test");
        registryConfig.setProtocol("zookeeper");
        registryConfig.setAddress("10.246.84.24:4180,10.246.84.24:4181,10.246.84.24:4182");
        registryConfig.setTimeout(60000);
        return registryConfig;
    }

    @Bean
    public ReferenceBean locationCodeService(@Qualifier("commonRegister") RegistryConfig registryConfig) {
        ReferenceBean referenceBean = new ReferenceBean();
        referenceBean.setRegistry(registryConfig);
//        referenceBean.setId("locationCodeService");
        referenceBean.setInterface(GaiaLocationCodeService.class);
        referenceBean.setVersion("dev-xfm");
        return referenceBean;
    }

    @Bean
    public ReferenceBean gaiaAssetService() {
        ReferenceBean referenceBean1 = new ReferenceBean();
        referenceBean1.setRegistry(commonRegister());
//        referenceBean1.setId("gaiaAssetService");
        referenceBean1.setInterface(GaiaAssetService.class);
        referenceBean1.setVersion("dev-xfm");
        return referenceBean1;
    }

} 

 3、新建controller

import com.netease.it.gaia.asset.common.service.GaiaAssetService;
import com.netease.it.gaia.user.common.service.GaiaLocationCodeService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;

/**
 * @ClassName: BaseController
 * @author: hzdengxuekai
 * @date: 2016/12/22 13:22
 */
@RestController
public class BaseController {

    private static final Logger logger = LoggerFactory.getLogger(BaseController.class);

//    @Reference(version = "dev-xfm", registry = "dev")
    @Resource
    private GaiaLocationCodeService locationCodeService;

//    @Reference(version = "qa", registry = "test")
    @Resource
    private GaiaAssetService gaiaAssetService;

    @RequestMapping(value = "test", method = RequestMethod.GET)
    public Object home() {
        logger.info("springboot 请求正常进入。。。");
        return locationCodeService.queryAllLocationCode();
    }

    @GetMapping("dubbo")
    public Object dubbo() {
        Map<String, Object> map = new HashMap<>(2);
//        map.put("locationCode", locationCodeService.queryAllLocationCode());
        map.put("asset", gaiaAssetService.queryAssetByAsstSn("KLIH-PDA-NGB10077"));
        return map;
    }
}

 4、在启动类上面添加注解

@EnableDubbo
@EnableDubboConfig

 5、启动入口类,完成整合!

 

posted @ 2018-11-07 16:23  孤独的拾荒者  阅读(457)  评论(0)    收藏  举报