版权声明:本文为博主原创文章,未经博主允许不得转载。 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项目下载
如有问题,请留言