интеграция springboot простой случай Даббо

Используйте Framework:

  JDK 1.8

  springboot-2.1.3 

  Dubbo-2,6

  весна-данных JPA-2.1.5

Во-первых, интерфейс развития Даббо службы:

В соответствии с предложениями по развитию официального Даббо создать проект интерфейса, который только определяет интерфейсы и класс модели;

1. Создание springboot инженерной springboot-демо-Даббо-интерфейс

Координаты:

<идентификатор_группы> com.example </ идентификатор_группы>
<артефакта> весна-загрузка демо-Даббо-интерфейс </ артефакт>
<версия> 0.0.1-SNAPSHOT </ версия>

Добавить пружинные данные JPA зависимость:

<зависимость>
<идентификатор_группы> org.springframework.boot </ идентификатор_группы>
<артефакта> весна-загрузка-стартер-данные JPA </ артефакт>
</ зависимость>

2. Создание модели

пакет com.example.demo.model; 

@Entity
общественного класса User реализует Serializable { частный статический окончательный длинный serialVersionUID = 1L ; @Id @GeneratedValue частный длинный идентификатор; частная строка имя_пользователь; частная строка пароля; частный ИНТ возраст; общественности долго GetId () { возвращение идентификатор; } // 省略набор получить方法

3, создать интерфейс:

пакет com.example.demo.service; 

импорт com.example.demo.model.User; 

публичный  интерфейс UserService { 
    
    общественного  недействительными сохранить (пользователь User); 
    
    общественная Строка SayHello (String слово); 
}

4, используйте команду, чтобы установить пакет чистой установки Maven хранилище.

 

 

Alibaba предлагает проекты с открытым исходным кодом Дабба интегрированный springboot;

Справочные документы:

https://github.com/apache/dubbo-spring-boot-project/blob/0.2.x/README_CN.md

Этот проект использует банку пакет унаследует проект:

<зависимость>
<идентификатор_группы> com.alibaba.boot </ идентификатор_группы>
<артефакт> Dubbo-весна-загрузка-стартер </ артефакт>
<версия> 0.2.0 </ версия>
</ зависимость>

 

Во-вторых, развитие Даббо Поставщик услуг:

1, создать проект Springboot весна-загрузки демо-Даббо-провайдера и настроить определенную зависимость;

pom.xml

<зависимостей> 
        <зависимость> 
            <идентификатор_группы> org.springframework.boot </ идентификатор_группы> 
            <артефакта> весна-загрузка стартер веб </ артефакт> 
        </ зависимость> 

        <зависимость> 
            <идентификатор_группы> org.springframework.boot </ идентификатор_группы > 
            <артефакт> springboot-стартер-тест </ артефакт> 
            <сфера> тест </ сфера> 
        </ зависимость> 
        
        
        <! -加入springboot与Даббо集成的起步依赖-> 
        <зависимость> 
            <идентификатор_группы> ком. alibaba.boot </ идентификатор_группы> 
            <артефакт> Dubbo-весна-загрузка-стартер </ артефакт> 
            <версия> 0.2.0 </ версия> 
        </ зависимость>

        <! -由于使用了Zookeeper作为注册中心,则需要加入Zookeeper的客户端баночка包: -> 
        <зависимость> 
            <идентификатор_группы> com.101tec </ идентификатор_группы> 
            <артефакт> zkclient </ артефакт> 
            <версия> 0,10 </ версия> 
        </ зависимость> 
        
        <! - весна-данные JPA -> 
        <зависимость> 
            <идентификатор_группы> org.springframework.boot </ идентификатор_группы> 
            <артефакта> весна-загрузка-стартер-данные JPA </ артефакт > 
        </ зависимость> 

        <зависимость> 
            <идентификатор_группы> MySQL </ идентификатор_группы> 
            <артефакта> MySQL-разъем-Java </ артефакта> 
            <сфера> Runtime </ сфера> 
        </ зависимость> 
        
        <! - Добавление служб интерфейса ->
        <зависимость> 
            <идентификатор_группы> com.example </ идентификатор_группы> 
            <артефакта> весна-загрузка демо-dubbo- интерфейс </ артефакт> 
            <версия> 0.0.1-SNAPSHOT </ версия> 
        </ зависимость> 
    </ зависимости>

2, информация конфигурации Даббо в файле конфигурации ядра application.properties Springboot в:

spring.datasource.driver- класс -name = com.mysql.cj.jdbc.Driver 
spring.datasource.url = JDBC: MySQL: // локальный: 3306 / тест serverTimezone = UTC & useUnicode = истина & characterEncoding = UTF-8 & UseSSL = истинная 
весна. datasource.username = корень 
spring.datasource.password = корень 

spring.jpa.properties.hibernate.hbm2ddl.auto = создать 
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect 
spring.jpa.properties.hibernate. format_sql = верно 
spring.jpa.show -SQL = верно 

#访问端口
server.port = 8080
# Даббо配置
dubbo.application.name = springboot-dubbo- поставщик 
dubbo.registry.address = Zookeeper: // 192.168.146.128:2181

3, интерфейс разработки класса реализации написано в Даббо:

пакет com.example.demo.service; 

импорт org.springframework.beans.factory.annotation.Autowired;
импорт org.springframework.stereotype.Component; 

импорт com.alibaba.dubbo.config.annotation.Service;
импорт com.example.demo.model.User;
импорт com.example.demo.repository.UserRepository; 

@Component // 注册为весна фасоли 
@Service // 这注解是Даббо提供的
общественный  класс UserServiceImpl реализует UserService { 
    
    @Autowired 
    личное UserRepository userRepository; 

    @Override 
    общественности  недействительнымсохранить (пользователь Пользователь) { 
        userRepository.save (пользователь); 
    } 

    @Override 
    общественности Строка SayHello (String слово) {
         возвращение слово; 
    } 
}

4, главный вход программа начинает Dubbo Service Provider: добавлять аннотации @EnableDubbo

пакет com.example.demo; 

импорт org.springframework.boot.SpringApplication;
импорт org.springframework.boot.autoconfigure.SpringBootApplication; 

импорт com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; 

@SpringBootApplication 
@EnableDubbo 
общественного  класс SpringBootDemoDubboProviderApplication { 

    общественный  статический  недействительный основной (String [] арг) { 
        SpringApplication.run (SpringBootDemoDubboProviderApplication. Класс , арг); 
    } 

}

 Начало основной, Zookeeper службы опубликованной в реестре.

 

В-третьих, потребители услуг по развитию Даббо:

1, создать проект Springboot весны-загрузка демо-Даббо-потребительский и настройка соответствующих зависимостей;

2, интегрированный с добавлением springboot Даббо начиная зависимость: (конфигурация выше pom.xml)

 Примечание: поставщики услуг и потребители должны настроить интерфейс службы зависимости 

3, информация конфигурации Даббо в файле конфигурации ядра application.properties Springboot в:

spring.datasource.driver- класс -name = com.mysql.cj.jdbc.Driver 
spring.datasource.url = JDBC: MySQL: // локальный: 3306 / тест serverTimezone = UTC & useUnicode = истина & characterEncoding = UTF-8 & UseSSL = истинная 
весна. datasource.username = корень 
spring.datasource.password = корень 

# WEB \ u670D \ u52A1 \ u7AEF \ u53E3 
server.port = 8081 
# Даббо \ u914D \ u7F6E 
dubbo.application.name = springboot-dubbo- потребителей 
dubbo.registry.address = Zookeeper: // 192.168.146.128:2181

 

4, написать класс контроллера, вызовите службу удаленного Даббо:

пакет com.example.demo.controller; 

импорт org.springframework.web.bind.annotation.RequestMapping;
импорт org.springframework.web.bind.annotation.RestController; 

импорт com.alibaba.dubbo.config.annotation.Reference;
импорт com.example.demo.model.User;
импорт com.example.demo.service.UserService; 

@RestController 
общественного  класса UserController { 
    
    @Reference // 该注解是Даббо提供的
    личного UserService UserService; 
    
    @RequestMapping ( "/ сказать" )
     публичное Строка SayHello (имя String) {
         возвращениеuserService.sayHello (имя); 
    } 
    
    @RequestMapping ( "/ сохранить" )
     общественную  пустоту Save () { 
        User ˙U = новый User (); 
        u.setAge ( 20 ); 
        u.setPassword ( "123" ); 
        u.setUserName ( "чжэн" ); 
        userService.save (и); 
    } 
}

 

 

5, запустить класс, чтобы добавить комментарий @EnableDubbo открытый Даббо

пакет com.example.demo; 

импорт org.springframework.boot.SpringApplication;
импорт org.springframework.boot.autoconfigure.SpringBootApplication;
импорт com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo; 

@SpringBootApplication 
@EnableDubbo 
общественного  класс SpringBootDemoDubboConsumerApplication {
     общественный  статический  недействительный основной (String [] арг) { 
        SpringApplication.run (SpringBootDemoDubboConsumerApplication. Класс , арг); 
    } 
}

 

  6, запуск основного метода.

  7, вызов удаленного интерфейса:

HTTP: // локальный: 8081 / сказать ? имя = привет 

Простой springboot полный спектр услуг на основе Даббо разработки интерфейса.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

рекомендация

отwww.cnblogs.com/qq99514925/p/10980041.html