SpringBoot2.0项目模块整合之Dubbo

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lx1309244704/article/details/82011811

我这里Dubbo用的zookeeper版本用的3.4.9,我这里讲的有些粗糙,主要是让大家能看个大概结构,详细情况请参考下面的demo。在demo里面有windows版zookeeper,具体请查看demo里面的zookeeper启动文件。

引入maven依赖包:

        <dependency>
			<groupId>com.gitee.reger</groupId>
			<artifactId>spring-boot-starter-dubbo</artifactId>
			<version>${spring-boot-starter-dubbo.version}</version>
		</dependency> 
<!-- ZK -->
		 <dependency>
			<groupId>org.apache.zookeeper</groupId>
			<artifactId>zookeeper</artifactId>
			<version>${zookeeper.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-log4j12</artifactId>
				</exclusion>
				<exclusion>
					<groupId>log4j</groupId>
					<artifactId>log4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

application.yml配置文件

server:
    port: 8005
spring:  
  profiles: 
    active: dev
    
  dubbo: 
    application:
      name: springboot-dubbo-service
    base-package: com.dubbo
    registry:
      address: 127.0.0.1                   # zookeeper注册中心的地址
      port: 2181                           # zookeeper注册中心的端口
    protocol:
      name: dubbo
      port: -1
      serialization: hessian2
    provider:
      retries: 0                           # 服务调用重试次数,服务发布者不给重试,让服务调用者自己重试
    consumer:
      timeout: 3000 
      check: false                         # 服务启动时检查被调用服务是否可用
      retries: 2                           # 服务调用重试次数
  
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource   #这里是配置druid连接池,以下都是druid的配置信息
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: 123456

mybatis:
  mapper-locations: classpath*:/mapper/**Mapper.xml    #把xml文件放在com.XX.mapper.*中可能会出现找到的问题,这里把他放在resource下的mapper中
  typeAliasesPackage: com.dubbo.domain         #这里是实体类的位置,#实体扫描,多个package用逗号或者分号分隔
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false

logging:
  file: springboot-dubbo-service.log
  level:
    com.dubbo: debug 
  
package com.dubbo.service.impl;


import com.alibaba.dubbo.config.annotation.Service;
import com.dubbo.api.UserService;
import com.dubbo.domain.User;


@Service
public class UserServiceImpl implements UserService {

	@Override
	public User getUser(String id) {
		User user = new User();
		user.setId(id);
		user.setName("香菇");
		user.setAge(18);
		return user;
	}

	@Override
	public void deleteUser(String id) {
		System.out.println(id+"进入实现类删除数据!");
	}

}

 测试类

package com.dubbo;


import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import com.alibaba.dubbo.config.annotation.Reference;
import com.dubbo.api.UserService;
import com.dubbo.domain.User;

@RunWith(SpringRunner.class)  
@SpringBootTest(classes = DubboApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@EnableTransactionManagement //如果mybatis中service实现类中加入事务注解,需要此处添加该注解
@EnableAutoConfiguration
public class DubboTest {
	
	@Reference
	private UserService userService;

	@Test
	public void getUser() {
		User user = userService.getUser("1");
		System.out.println(user);
	}
	
}

项目demo:demo项目下载

如有问题,请留言

猜你喜欢

转载自blog.csdn.net/lx1309244704/article/details/82011811