【SpringBoot&Dubbo】SpringBoot集成Dubbo,Dubbox分布式服务框架

dubbo

配置

  • pom.xml
<!-- Spring boot start-->  
<dependency>  
  <groupId>org.springframework.boot</groupId>  
  <artifactId>spring-boot-starter</artifactId>  
  <!-- spring boot  默认的日志框架是Logback,所以在引用log4j2之前,需要先排除该包的依赖,再引入log4j2的依赖-->  
  <exclusions>  
      <exclusion>  
          <groupId>org.springframework.boot</groupId>  
          <artifactId>spring-boot-starter-logging</artifactId>  
      </exclusion>  
  </exclusions>  
</dependency>  
<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>  
     <exclusions>  
         <exclusion>  
             <groupId>org.springframework.boot</groupId>  
             <artifactId>spring-boot-starter-logging</artifactId>  
         </exclusion>  
     </exclusions>  
     <scope>test</scope>  
 </dependency>  
<dependency> <!-- 引入log4j2依赖 -->  
     <groupId>org.springframework.boot</groupId>  
     <artifactId>spring-boot-starter-log4j2</artifactId>  
 </dependency>  
<!-- dubbo -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>dubbo</artifactId>
	<version>2.5.3</version>
	<exclusions>
		<exclusion>
			<artifactId>spring</artifactId>
			<groupId>org.springframework</groupId>
		</exclusion>
	</exclusions>
</dependency>
  • dubbo.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:application name="usercenter" />
	
	<!-- 使用zookeeper注册中心暴露服务地址 -->
	<dubbo:registry address="zookeeper://127.0.0.1:2181" />
	
	<!-- 用dubbo协议在20880端口暴露服务 -->
	<dubbo:protocol name="dubbo" port="20882" />
	
	<!-- 提供服务 -->
	<dubbo:service id="messageInfoServiceDBO"
		interface="abc.abcMessageInfoService"
		ref="messageInfoServiceImpl" timeout="1200000" />
	<bean id="messageInfoServiceImpl"
		class="abc.abc.impl.MessageInfoServiceImpl" />
			
	<!-- 调用服务 -->
	<dubbo:reference id="userService"
		interface="abc.service.UserService"></dubbo:reference>
</beans>

代码示例

  • Application .java
/**
 *springboot启动类
 */
@SpringBootApplication  
public class Application {  
  
    public static void main(String[] args) {  
        SpringApplication.run(Application.class, args);  
    }  
}

注:上述配置好后可直接调用dubbo服务

dubbox

配置

  • pom.xml
<!-- Spring boot start-->  
<dependency>  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter</artifactId>  
    <!-- spring boot  默认的日志框架是Logback,所以在引用log4j2之前,需要先排除该包的依赖,再引入log4j2的依赖-->  
    <exclusions>  
        <exclusion>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-logging</artifactId>  
        </exclusion>  
    </exclusions>  
</dependency>  
<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>  
    <exclusions>  
        <exclusion>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-logging</artifactId>  
        </exclusion>  
    </exclusions>  
    <scope>test</scope>  
</dependency>  
<dependency> <!-- 引入log4j2依赖 -->  
    <groupId>org.springframework.boot</groupId>  
    <artifactId>spring-boot-starter-log4j2</artifactId>  
</dependency>  

代码示例

  • DubboConfig .java
/** 
 *Dubbo配置类
 * Created by chentian610. 
 */  
@Configuration  
@PropertySource("classpath:dubbo.properties")  
public class DubboConfig {  
  
    @Value("${dubbo.application.name}")  
    private String dubbo_application_name;  
  
  
    @Value("${dubbo.registry.address}")  
    private String dubbo_registry_address;  
  
    /** 
     * 由《dubbo:application》转换过来 
     **/  
    @Bean  
    public ApplicationConfig applicationConfig() {  
        ApplicationConfig applicationConfig = new ApplicationConfig();  
        applicationConfig.setLogger("slf4j");  
        applicationConfig.setName(dubbo_application_name);  
        return applicationConfig;  
    }  
  
    /** 
    * 与<dubbo:annotation/>相当.提供方扫描带有@com.alibaba.dubbo.init.annotation.Reference的注解类 
    * */  
    @Bean  
    public static AnnotationBean annotationBean() {  
        AnnotationBean annotationBean = new AnnotationBean();  
        annotationBean.setPackage("com.chentian610");//多个包可使用英文逗号隔开  
        return annotationBean;  
    }  
  
    /** 
     * 与<dubbo:registry/>相当 
     * */  
    @Bean  
    public RegistryConfig registryConfig() {  
        RegistryConfig registryConfig = new RegistryConfig();  
        registryConfig.setAddress(dubbo_registry_address);  
        return registryConfig;  
    }  
}  
  • Application .java
/**
 *springboot启动类
 */
@SpringBootApplication  
public class Application {  
  
    public static void main(String[] args) {  
        SpringApplication.run(Application.class, args);  
    }  
}
  • 调用业务
@Reference  
private GetuiService getuiService;  
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值