Используйте 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 полный спектр услуг на основе Даббо разработки интерфейса.