您的位置:首页 > 编程语言 > Java开发

springboot mybatis dubbo zookeeper的简单使用

2018-03-20 10:27 495 查看
参考文章:http://www.r9it.com/20171018/springboot-dubbo.html http://blog.csdn.net/rchengzhi/article/details/78990543
在这之前已经完成了dubbo和zookeeper的安装.并成功启动.
windows参考:http://blog.csdn.net/cencfeng11/article/details/79541175
1. 新建maven项目,把src删除,分别新建springboot module : 

dubbo-api  //service and entity
public class User implements Serializable{
private int id;
private String username;
private String password;
public interface UserService {
User getUserByName(String username);
User getUser(User user);
}

dubbo-provider //mapper and impl
@Mapper
public interface UserMapper {
User getUserByName(String username);
User getUser(User user);
}import com.alibaba.dubbo.config.annotation.Service;
import com.cen.dubboapi.entity.User;
import com.cen.dubboapi.service.UserService;
import com.cen.dubboprovider.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;

@Service
public class UserServiceImpl implements UserService {
@Autowired
UserMapper userMapper<
4000
span style="color:#cc7832;">;

@Override
public User getUserByName(String username) {
return userMapper.getUserByName(username);
}

@Override
public User getUser(User user) {
return userMapper.getUser(user);
}
}

dubbo-consumer  //controller
import com.alibaba.dubbo.config.annotation.Reference;
import com.cen.dubboapi.entity.User;
import com.cen.dubboapi.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/user")
public class UserController {
@Reference
UserService userService;
@RequestMapping("/login")
public String login(User user){
user = userService.getUser(user);
if(user != null){
return "menu";
}
return "failed";
}
}

这样分module的目的是让provider和consumer共用api和实体类

2. provider提供服务,在service中暴露服务,因为是用的注解暴露服务,所以,@Service是alibaba.dubbo的,dubbo扫描的包为服务所在的包,provider  ----application.properties:
## 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/cf
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
## dubbo 服务提供者配置 ##
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.cen.dubboprovider.impl
## Mybatis 配置
mybatis.typeAliasesPackage=com.cen.dubboapi.entity
mybatis.mapperLocations=classpath:/mapper/*.xml
server.port=70013. consumer使用服务 application.properties
## 避免和 server 工程端口冲突
server.port=7002
## Dubbo 服务消费者配置
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=com.cen.dubboconsumer.controller
## html免检 ##
spring.thymeleaf.cache=false
spring.thymeleaf.mode=LEGACYHTML5
## 视图控制 ##
spring.mvc.view.prefix=/templates/
spring.mvc.view.suffix=.html4.分别启动provider和consumer,需要先启动zookeeper和dubbo,引入的pom参考如下:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.cen</groupId>
<artifactId>dubboapi</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.0</version>
<exclusions>
<exclusion>
<artifactId>spring</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.11</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>${dubbo-spring-boot}</version>
</dependency>
</dependencies>5.启动provider和consumer后,在dubbo-admin中就能看到provider和consumer的详细内容了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: