天天看点

springboot-dubbo-mybatis项目搭建一、下载官方demo帮助搭建二、配置与解释

一、下载官方demo帮助搭建

在网站http://start.dubbo.io/,勾选自己需要的组件,下载demo,基于demo构建自己的项目。

二、配置与解释

1、provider端:

1)、依赖添加

在pom.xml中添加依赖:

<!--设置父依赖-->

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>

1.5

.

16

.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

<!--添加所需的依赖-->

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>

1.2

.

47

</version>

</dependency>

<dependency>

<groupId>com.alibaba.boot</groupId>

<artifactId>dubbo-spring-boot-starter</artifactId>

<version>

0.1

.

</version>

</dependency>

<dependency>

<groupId>io.netty</groupId>

<artifactId>netty-all</artifactId>

<version>

4.1

.

24

.Final</version>

</dependency>

<dependency>

<groupId>org.apache.commons</groupId>

<artifactId>commons-lang3</artifactId>

<version>

3.7

</version>

</dependency>

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifactId>mybatis-spring-boot-starter</artifactId>

<version>

1.3

.

2

</version>

</dependency>

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<scope>runtime</scope>

</dependency>

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<optional>

true

</optional>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

2)、application.properties配置

#数据库连接信息配置

spring.datasource.url=jdbc:mysql:

//localhost:3306/tyrant?useUnicode=true&characterEncoding=utf8?useSSL=true

spring.datasource.username=root

spring.datasource.password=

358140678

spring.datasource.driver-

class

-name=com.mysql.jdbc.Driver

#mybatis配置

mybatis.config-location=classpath:mybatis-config.xml

mybatis.mapper-locations=classpath:mapper/*.xml

mybatis.type-aliases-

package

=com.tyrant.article.dao

#dubbo配置

dubbo.application.name = dubbo-article-server

# Base packages to scan Dubbo Component: 

@com

.alibaba.dubbo.config.annotation.Service

dubbo.scan.basePackages  = com.tyrant.article.service #设置dubbo扫描服务的包

## RegistryConfig Bean

dubbo.registry.id = my-registry

dubbo.registry.address = zookeeper:

//localhost:2181?client=curator #设置注册地址

dubbo.application.qosEnable=

false

#设置返回前端的date格式

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

spring.jackson.time-zone=GMT+

8

3)、编写mybatis-conf类

<?xml version=

"1.0"

encoding=

"UTF-8"

?>

<!DOCTYPE configuration

PUBLIC 

"-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd"

>

<configuration>

<settings>

<!-- Globally enables or disables any caches configured in any mapper under 

this

configuration -->

<setting name=

"cacheEnabled"

value=

"true"

/>

<!-- Sets the number of seconds the driver will wait 

for

a response from the database -->

<setting name=

"defaultStatementTimeout"

value=

"3000"

/>

<!-- Enables automatic mapping from classic database column names A_COLUMN to camel 

case

classic Java property names aColumn -->

<setting name=

"mapUnderscoreToCamelCase"

value=

"true"

/>

<!-- Allows JDBC support 

for

generated keys. A compatible driver is required.

This setting     forces generated keys to be used 

if

set to 

true

,

as some drivers deny compatibility but still work -->

<setting name=

"useGeneratedKeys"

value=

"true"

/>

</settings>

<!-- Continue going here -->

</configuration>

4)、编写zk的类

参照官网demo,写zk的注册类。在启动类中调用new EmbeddedZooKeeper(2181, false).start();启动zk服务,注意此处的变量是dubbo服务在zk注册的端口,须与application.properties配置相同。

5)、编写服务类

import

com.alibaba.dubbo.config.annotation.Service;

import

com.tyrant.article.service.TestService;

@Service

(version = 

"1.0.0"

)

public

class

TestServiceImpl 

implements

TestService {

@Override

public

String test() {

return

"test from provider"

;

}

}

TestService需要暴露给消费者consumer。

6)、启动类编写

import

org.mybatis.spring.annotation.MapperScan;

import

org.springframework.boot.SpringApplication;

import

org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

@MapperScan

(

"com.tyrant.article.dao"

)

public

class

ArticleApplication {

public

static

void

main(String[] args) {

// start embedded zookeeper server

new

EmbeddedZooKeeper(

2181

false

).start();

SpringApplication.run(ArticleApplication.

class

, args);

}

}

2、consumer端:

1)、依赖添加

添加所需的依赖包。

2)、编写application.properties配置

#避免接口占用冲突

server.port=8081

# Dubbo Config properties

## ApplicationConfig Bean

dubbo.application.name= dubbo-demo-client

## RegistryConfig Bean

dubbo.registry.id = my-registry

dubbo.registry.address = zookeeper://localhost:2181?client=curator

dubbo.application.qosEnable=false

3)、引入provider的接口

注意,此处的包,名称和完整包路径,必须和provider中的一致。

4)、测试类编写

import

com.alibaba.dubbo.config.annotation.Reference;

import

com.tyrant.article.service.ArticleService;

import

org.springframework.web.bind.annotation.RequestMapping;

import

org.springframework.web.bind.annotation.RestController;

@RestController

@RequestMapping

(

"/test"

)

public

class

ArticleController {

@Reference

(version = 

"1.0.0"

)

private

TestService testService;

@RequestMapping

(

"/"

)

public

String test(){

return

testService.getRandomArticle();

}

}

以上步骤完成后,先启动provider,再启动consumer服务。

继续阅读