最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Springboot整合Dubbo之代碼集成和發(fā)布

 更新時(shí)間:2017年12月16日 15:45:55   作者:Magogo  
本篇文章主要介紹了Springboot整合Dubbo之代碼集成和發(fā)布,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

本文介紹了Springboot整合Dubbo之代碼集成和發(fā)布,分享給大家,具體如下:

1. boot-dubbo-api相關(guān)

打開(kāi)boot-dubbo-api項(xiàng)目,正在src/main/java下創(chuàng)建一個(gè)包,并創(chuàng)建你需要dubbo暴露的接口TestService.java,并創(chuàng)建一個(gè)實(shí)體類(lèi)用于測(cè)試User.java。如下圖所示:

創(chuàng)建文件和包結(jié)構(gòu)

User.java

package com.boot.domain;
import lombok.Data;
import java.io.Serializable;
@Data
public class User implements Serializable {
 private Integer id;
 private String username;
 private String password;
 private Integer age;
 private Integer gender;
}

TestService.java

package com.boot.service;
import com.boot.domain.User;
public interface TestService {
 String sayHello(String str);
 User findUser();
}

2. boot-dubbo-provider相關(guān)

首先我們先看看總共需要編寫(xiě)的內(nèi)容,文件的層次結(jié)構(gòu)圖

boot-dubbo-provider項(xiàng)目結(jié)構(gòu)圖

第一步:我們首先實(shí)現(xiàn)我們?cè)赽oot-dubbo-api上定義的接口,創(chuàng)建一個(gè)TestServiceImpl類(lèi)并實(shí)現(xiàn)TestService

package com.boot.service.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.boot.domain.User;
import com.boot.service.TestService;
import java.text.SimpleDateFormat;
import java.util.Date;
@Service(version = "1.0.0")
public class TestServiceImpl implements TestService {

 @Override
 public String sayHello(String str) {
  SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  return dateFormat.format(new Date()) + ": " + str;
 }

 @Override
 public User findUser() {
  User user = new User();
  user.setId(1001);
  user.setUsername("scott");
  user.setPassword("tiger");
  user.setAge(20);
  user.setGender(0);
  return user;
 }
}

注意:代碼里的@Service注解是com.alibaba.dubbo.config.annotation.Service的。

第二步:在resources下創(chuàng)建一個(gè)config文件夾,在config下創(chuàng)建spring-dubbo.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"/>
 <!-- 注冊(cè)中心的ip地址 -->
 <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
 <!-- 掃描注解包路徑,多個(gè)包用逗號(hào)分隔,不填pacakge表示掃描當(dāng)前ApplicationContext中所有的類(lèi) -->
 <dubbo:annotation package="com.boot.service.impl"/>
</beans>

第三步:在com.boot包下新建Springboot的入口類(lèi),創(chuàng)建一個(gè)ProviderApplication.java文件。

package com.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
import java.io.IOException;
@SpringBootApplication
@ImportResource({"classpath:config/spring-dubbo.xml"})
public class ProviderApplication {
 public static void main(String[] args) {
  SpringApplication.run(ProviderApplication.class, args);
  try {
   System.in.read();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

第四步:最后在resources文件夾下面創(chuàng)建application.yml,Springboot的配置文件。

# 在這里編寫(xiě)springboot的配置信息

3. boot-dubbo-consumer相關(guān)

首先我們先看看總共需要編寫(xiě)的內(nèi)容,文件的層次結(jié)構(gòu)圖

boot-dubbo-consumer項(xiàng)目結(jié)構(gòu)圖

第一步:編寫(xiě)我們的Controller控制類(lèi),在com.boot.controller包下新建一個(gè)TestController類(lèi),編寫(xiě)訪(fǎng)問(wèn)地址。

package com.boot.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.boot.domain.User;
import com.boot.service.TestService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/")
public class TestController {
 @Reference(version = "1.0.0")
 private TestService testService;

 @GetMapping("hello")
 public String hello() {
  return testService.sayHello("Hello springboot and dubbo!");
 }

 @GetMapping("user")
 public User user() {
  return testService.findUser();
 }
}

第二步:在resources下創(chuàng)建一個(gè)config文件夾,在config下創(chuàng)建spring-dubbo.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
   <dubbo:application name="consumer"/>
 <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
 <dubbo:annotation package="com.boot.controller"/>
</beans>

第三步:在com.boot包下新建Springboot的入口類(lèi),創(chuàng)建一個(gè)ConsumerApplication.java文件。

package com.boot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ImportResource;
@SpringBootApplication
@ImportResource({"classpath:config/spring-dubbo.xml"})
public class ConsumerApplication {
 public static void main(String[] args) {
  SpringApplication.run(ConsumerApplication.class, args);
 }
}

第四步:最后在resources文件夾下面創(chuàng)建application.yml,Springboot的配置文件。

# 在這里編寫(xiě)springboot的配置信息
server:
 port: 8080
 context-path: /

至此,代碼部分已經(jīng)編寫(xiě)完畢?。。?/p>

4. 安裝zookeeper注冊(cè)中心到電腦中

下載地址:zookeeper下載地址

點(diǎn)擊后下載適合自己的版本,如圖所示

zookeeper的下載

下載完畢后,解壓縮該文件,進(jìn)入conf文件夾,拷貝一份zoo_sample.cfg,在該目錄生成zoo.cfg文件。

拷貝生成zoo.cfg文件

進(jìn)入bin目錄,運(yùn)行zkServer.cmd文件。

運(yùn)行zkServer.cmd

點(diǎn)擊運(yùn)行后出現(xiàn)如下圖所示

運(yùn)行成功

5. 現(xiàn)在終于可以運(yùn)行我們的項(xiàng)目了

先運(yùn)行我們的ProviderApplication.java文件的main函數(shù),再運(yùn)行ConsumerApplication.java文件的main函數(shù)。

打開(kāi)瀏覽器訪(fǎng)問(wèn)
http://localhost:8080/hello
http://localhost:8080/user

好了,激動(dòng)人心的時(shí)刻到了,我們終于完成了Springboot和Dubbo的集成了。

項(xiàng)目地址:springboot-dubbo項(xiàng)目GitHub地址

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot的啟動(dòng)過(guò)程源碼詳細(xì)分析

    SpringBoot的啟動(dòng)過(guò)程源碼詳細(xì)分析

    這篇文章主要介紹了SpringBoot的啟動(dòng)過(guò)程源碼詳細(xì)分析,SpringBoot啟動(dòng)的時(shí)候,會(huì)構(gòu)造一個(gè)SpringApplication的實(shí)例,構(gòu)造SpringApplication的時(shí)候會(huì)進(jìn)行初始化的工作,需要的朋友可以參考下
    2023-11-11
  • Java8新特性之重復(fù)注解與類(lèi)型注解詳解

    Java8新特性之重復(fù)注解與類(lèi)型注解詳解

    這篇文章主要使介紹了Java8新特性重復(fù)注解與類(lèi)型注解,文章還介紹了JDK5中的注解與之對(duì)比,感興趣的朋友可以參考下面具體文章內(nèi)容
    2021-09-09
  • SpringMVC中處理靜態(tài)資源的過(guò)程詳解

    SpringMVC中處理靜態(tài)資源的過(guò)程詳解

    本文給大家介紹SpringMVC中處理靜態(tài)資源的過(guò)程,結(jié)合示例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • Java中I/O流讀取數(shù)據(jù)不完整的問(wèn)題解決

    Java中I/O流讀取數(shù)據(jù)不完整的問(wèn)題解決

    本文主要介紹了ava中I/O流讀取數(shù)據(jù)不完整的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • MyBatis-Plus 通用IService使用詳解

    MyBatis-Plus 通用IService使用詳解

    這篇文章主要介紹了MyBatis-Plus 通用IService使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java基礎(chǔ)之文件概述

    Java基礎(chǔ)之文件概述

    這篇文章主要介紹了Java基礎(chǔ)之文件概述,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-05-05
  • JAVA實(shí)現(xiàn)DOC轉(zhuǎn)PDF的示例代碼

    JAVA實(shí)現(xiàn)DOC轉(zhuǎn)PDF的示例代碼

    Word作為目前主流的文本編輯軟件之一,功能十分強(qiáng)大,但是在傳輸?shù)臅r(shí)候不穩(wěn)定,那么如何從DOC轉(zhuǎn)PDF,本文就來(lái)介紹一下,感興趣的可以了解一下
    2021-08-08
  • MyBatis中?@Mapper?和?@MapperScan?的區(qū)別與使用解析

    MyBatis中?@Mapper?和?@MapperScan?的區(qū)別與使用解析

    本文介紹了SpringBoot中MyBatis的兩個(gè)常用注解:@Mapper和@MapperScan,@Mapper用于標(biāo)記單個(gè)Mapper接口,而@MapperScan用于批量掃描指定包下的所有Mapper接口,兩者都有各自適用的場(chǎng)景,選擇合適的注解可以提高開(kāi)發(fā)效率并使代碼更加簡(jiǎn)潔,感興趣的朋友一起看看吧
    2025-01-01
  • Spring Cloud項(xiàng)目前后端分離跨域的操作

    Spring Cloud項(xiàng)目前后端分離跨域的操作

    這篇文章主要介紹了Spring Cloud項(xiàng)目前后端分離跨域的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java獲取電腦真實(shí)IP地址的示例代碼

    Java獲取電腦真實(shí)IP地址的示例代碼

    這篇文章主要介紹了Java如何獲取電腦真實(shí)IP地址,忽略虛擬機(jī)等IP地址的干擾,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-09-09

最新評(píng)論

墨竹工卡县| 特克斯县| 积石山| 延吉市| 和政县| 观塘区| 高雄县| 麦盖提县| 怀仁县| 竹北市| 景德镇市| 宜宾县| 昌都县| 浏阳市| 三穗县| 宾川县| 积石山| 桃源县| 乌拉特中旗| 康保县| 天津市| 定边县| 正安县| 平果县| 洛阳市| 宿州市| 青神县| 龙江县| 若羌县| 宜州市| 时尚| 乌什县| 弥渡县| 东平县| 广昌县| 长乐市| 科技| 临清市| 白玉县| 乐东| 苏尼特右旗|