`
maosheng
  • 浏览: 566412 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Boot集成dubbo,mybatis构建maven工程

 
阅读更多
一.Dubbo服务提供者(Spring Boot+Dubbo+Mybatis)

Dubbo服务提供者应用通过Spring Boot集成Dubbo和Mybatis,封装Service层和Dao层,对外提供Dubbo服务。


【1.工程结构】





【2. pom.xml】

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.iteye.maosheng</groupId>
  <artifactId>springboot_dubbo_provider</artifactId>
  <version>0.0.1-SNAPSHOT</version>
 
  <!-- Spring Boot 启动父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>

    <properties>
        <!-- JDK 1.8 -->
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
   
        <!-- Import dependency management from Spring Boot -->
        <!-- 有些情况我们已经有父pom,不能直接增加<parent>时,可以通过如下方式,注意:<scope>import</scope>  -->
        <!--        
        <dependency>
           
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.2.3.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        -->

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>

<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>

<dependency> 
            <groupId>com.alibaba</groupId> 
            <artifactId>druid</artifactId> 
            <version>1.0.5</version> 
        </dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.8</version>
        </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.3</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
       
    </dependencies>
   
    <build>
<plugins>
    <!-- Compile -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
            </plugin>
           
    <!-- spring boot maven plugin -->
             <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <dependencies>
                    <!-- 通过mvn spring-boot:run启动就支持热部署了 -->
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.5.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
</plugins>
</build>
   
</project>


【3. application.yml】

server:
  port: 8011
       
spring:
    datasource:
        name: test
        url: jdbc:mysql://192.168.0.243:3306/test?useUnicode=true&amp;allowMultiQueries=true&amp;characterEncoding=utf-8
        username: root
        password: 112233
        driver-class-name: com.mysql.jdbc.Driver
        filters: stat
        maxActive: 20
        initialSize: 1
        maxWait: 60000
        minIdle: 1
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: select 'x'
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxOpenPreparedStatements: 20

mybatis:  
  mapperLocations: classpath:com/maosheng/dubbo/demo1/dao/mapper/*Mapper.xml
  typeAliasesPackage: com.maosheng.dubbo.demo1.entity


【4. provider.xml】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">
    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    <dubbo:application name="provider" />
    <!-- 使用zookeeper作为注册中心 -->
    <dubbo:registry  protocol="zookeeper" address="zookeeper://192.168.87.214:1051" />
    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:service interface="com.maosheng.dubbo.demo1.TestService" ref="testService"></dubbo:service>
    <dubbo:service interface="com.maosheng.dubbo.demo1.UserService" ref="userService"></dubbo:service>
       
</beans>


【5. Application.java】

package com.maosheng.dubbo.demo1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
/**
*
* @author Administrator
*
*/
@SpringBootApplication
@ImportResource("classpath:provider.xml")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}


二. Dubbo服务消费者(Spring Boot+Dubbo)

Dubbo服务消费者应用通过Spring Boot集成Dubbo,封装Service层和Controller层,Service层消费Dubbo提供者应用提供的服务,Controller层对外提供Restful服务。


【1.工程结构】





【2. pom.xml】

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.iteye.maosheng</groupId>
  <artifactId>springboot_dubbo_consumer</artifactId>
  <version>0.0.1-SNAPSHOT</version>
 
  <!-- Spring Boot 启动父依赖 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
 
    <properties>
        <!-- JDK 1.8 -->
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
   
        <!-- Import dependency management from Spring Boot -->
        <!-- 有些情况我们已经有父pom,不能直接增加<parent>时,可以通过如下方式,注意:<scope>import</scope>  -->
        <!--        
        <dependency>
           
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>1.2.3.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        -->

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.8</version>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
            </exclusions>
        </dependency>       
        <dependency> 
    <groupId>com.alibaba</groupId> 
     <artifactId>fastjson</artifactId> 
     <version>1.1.41</version> 
        </dependency>

    </dependencies>
   
    <build>
<plugins>
    <!-- Compile -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
            </plugin>
           
    <!-- spring boot maven plugin -->
             <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <dependencies>
                    <!-- 通过mvn spring-boot:run启动就支持热部署了 -->
                    <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>springloaded</artifactId>
                        <version>1.2.5.RELEASE</version>
                    </dependency>
                </dependencies>
            </plugin>
</plugins>
</build>
   
</project>


【3. application.yml】

server:
  port: 8012
       

【4. consumer.xml】

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd ">
    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    <dubbo:application name="consumer" />
    <!-- zookeeper作为注册中心 -->
    <dubbo:registry  protocol="zookeeper" address="zookeeper://192.168.87.214:1051" />
    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference interface="com.maosheng.dubbo.demo1.TestService" id="testService"></dubbo:reference>
    <dubbo:reference interface="com.maosheng.dubbo.demo1.UserService" id="userService"></dubbo:reference>
   
</beans>


【5. Application.java】

package com.maosheng.dubbo.demo1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;

@SpringBootApplication
@ImportResource("classpath:consumer.xml")
public class Application{

    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
   
}


三.启动测试

1.运行springboot_dubbo_provider工程下的Application

2.运行springboot_dubbo_consumer工程下的Application

3.通过http://localhost:8012/hello调用hello Restful 接口





  通过http://localhost:8012/sayHello/maosheng调用sayHello Restful 接口:





  通过RESTClient工具测试addUserWithBackId Restful接口:




  数据库结果:





四.demo源代码见附件(springboot_dubbo_demo.zip)
  • 大小: 39.8 KB
  • 大小: 30 KB
  • 大小: 14.1 KB
  • 大小: 78.5 KB
  • 大小: 20.2 KB
  • 大小: 17.3 KB
分享到:
评论

相关推荐

    Springboot整合dubbo构建maven多模块项目 - 集成 mybatis

    本文将详细讲解如何使用Spring Boot整合Dubbo,并在Maven多模块项目中集成MyBatis,帮助开发者构建高效、可扩展的微服务架构。 Spring Boot是一个基于Spring框架的快速开发工具,它简化了初始化配置,提供了自动...

    spring,mybatis,hibernate,activemq,redis,dubbo的集成

    它简化了Java EE开发,提供了丰富的模块,如Spring MVC用于Web开发,Spring JDBC和MyBatis集成进行数据访问,Spring Security处理权限控制,以及Spring Boot用于快速构建独立的应用。 2. **MyBatis**: MyBatis 是...

    springboot+mybatis+dubbo 分布式框架搭建及日志配置

    在构建分布式系统时,SpringBoot、MyBatis和Dubbo是三个非常重要的组件。SpringBoot简化了Spring应用的初始设置和开发过程,MyBatis是一个轻量级的持久层框架,而Dubbo则是阿里巴巴开源的高性能服务治理平台。这篇...

    spring boot +mybatis+mysql+dubbo+zookeeper分布式架构搭建

    通常,这样的项目会包含以下部分:pom.xml(Maven或Gradle的构建文件),application.properties或application.yml(Spring Boot的配置文件),dubbo配置文件(定义服务提供者和服务消费者的配置),MyBatis的相关...

    销售系统项目,spring+spring mvc+mybatis+dubbo+kafka+redis+maven.zip

    【标题】"销售系统项目,spring+spring mvc+mybatis+dubbo+kafka+redis+maven.zip" 提供了一个综合的IT解决方案,涉及到的技术栈主要包括Spring、Spring MVC、MyBatis、Dubbo、Kafka、Redis以及Maven。这个项目采用...

    Spring-Boot的Dubboxboot-dubbo.zip

    Boot-dubbo 项目整合了最新的 Spring Boot 和功能强大的 RPC 框架 Dubbox,两者都有优点,也都有缺点,最新版本的 Spring Boot 包含了 Metrics 模块Dubbox官方地址:Dubbox:... 标签:bootdubbo

    基于Maven构建的SPRING+MYBATIS+ZOOKEEPER+DUBBO的分布式系统.zip

    《基于Maven构建的SPRING+MYBATIS+ZOOKEEPER+DUBBO的分布式系统详解》 在现代企业级应用开发中,分布式系统已经成为主流。本项目以Maven为构建工具,融合了Spring、MyBatis、ZooKeeper和Dubbo等核心组件,构建了一...

    spring-boot示例项目

    spring boot demo 是一个Spring Boot、Spring Cloud的项目示例,根据市场主流的后端技术,共集成了30+个demo,未来将持续更新。该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis...

    一个springboot加上dubbo

    【标题】"一个springboot加上dubbo"的实现主要...这个项目展示了如何在一个Spring Boot应用中集成Dubbo,实现服务的分布式调用,以及如何通过Maven进行构建和管理依赖。这样的架构有利于构建大型、高可用的微服务系统。

    springboot+dubbo+zk框架搭建学习.zip

    在IT行业中,Spring Boot、Dubbo和Zookeeper是三个非常重要的框架和技术,它们在构建分布式系统和服务治理中扮演着核心角色。本篇文章将详细介绍这三个技术的结合使用,以及如何进行框架搭建的学习。 首先,让我们...

    spring4+springMVC+Mybatis3.2整合源码

    1. 使用Spring Boot简化配置,它集成了SSM框架,并提供了自动配置。 2. 使用Spring Data JPA或Mybatis的PageHelper进行分页查询,提高效率。 3. 采用AOP进行日志记录、权限控制等操作。 4. 使用Spring Profiles进行...

    狂神JAVA-18-SpringBoot学习1

    还包括集成Druid数据库连接池,使用Dubbo进行分布式开发,利用Zookeeper进行服务治理,使用Swagger构建前后端接口文档,以及任务调度、安全模块(Spring Security或Shiro)的学习。此外,还有Spring Cloud的相关内容...

    springboot整合资源

    现在,我们来深入探讨如何整合Spring Boot与其他技术,如Druid、Dubbo和Zookeeper,以及MyBatis。 1. **Spring Boot与Druid整合** Druid是一款优秀的数据库连接池组件,它提供了监控、Web管理界面、SQL解析等多种...

    Springboot + Mybatis+Dubbo+Zookeeper+nginx+redis+HTML.docx

    在《Springboot + Mybatis+Dubbo+Zookeeper+nginx+redis+HTML.docx》这份文档中,作者详细介绍了如何集成并使用Spring Boot、MyBatis、Dubbo、Zookeeper、Nginx以及Redis等多种技术,构建一个高效稳定的应用系统。...

    springboot-mybatis-dubbo-zookeeper项目框架.rar

    【标题】"springboot-mybatis-dubbo-zookeeper项目框架"是一个综合性的开发框架组合,它将Spring Boot、MyBatis、Dubbo和Zookeeper集成在一起,以构建高效、可扩展的分布式服务系统。这个框架旨在简化开发流程,提高...

    springboot+nacos.zip

    在现代企业级应用开发中,Spring Boot以其简洁高效的特点成为Java领域的主流框架,而Nacos作为阿里开源的一款分布式服务治理平台,集成了服务注册与发现、配置管理、元数据管理等功能,是构建微服务生态的重要组件。...

    ibase4j, ssm+maven+dubbo+angular

    iBase4J基于Spring Boot,集成了MyBatis、Quartz等组件,为开发者提供了一站式的解决方案。 SSM是Spring、SpringMVC和MyBatis的简称,这是一个广泛使用的Java Web开发框架组合。Spring作为核心,负责依赖注入和事务...

    SpringBoot整合mybatis-plus实现多数据源的动态切换且支持分页查询.pdf

    在SpringBoot项目中,整合Mybatis-Plus并实现多数据源的动态切换,同时支持分页查询是一项常见的需求。以下将详细阐述这个过程中的关键步骤和技术要点。 首先,我们需要引入必要的Maven依赖。这里提到了四个关键...

    基于SpringBoot+Spring+SpringMvc+Mybatis开发分布式REST服务源码+数据库+项目说明.zip

    | Spring Boot|构建系统| | Apache Shiro | 安全框架 | | MyBatis | ORM框架 | | MyBatis Generator | 代码生成 | | PageHelper | MyBatis物理分页插件 | | Druid | 数据库连接池 | | Redis | 分布式缓存数据库 | |...

Global site tag (gtag.js) - Google Analytics