springboot mybatis dubbo zookeeper的簡單使用idea打包項目

參考文章: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;

    @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=7001

3. 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=.html

4.分別啓動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的詳細內容了.

IDE打包項目:

idea右邊maven.project窗

子模塊中Lifecycle——>clean& install

子模塊install完成後,項目package

順利的話再target中有jar  java -jar 運行

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章