什么是項目整合管理,SpringBoot多模塊項目整合Dubbo

 2023-10-17 阅读 28 评论 0

摘要:SpringBoot框架整合Dubbo有3種方式: Demo的項目結構: 1.dubbo.xml + @ImportResource注解? ? ? ?? 什么是項目整合管理、(1)導入包: <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo&

SpringBoot框架整合Dubbo有3種方式:

Demo的項目結構:

1.dubbo.xml + @ImportResource注解? ? ? ??

什么是項目整合管理、(1)導入包:

        <dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>2.7.1</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-framework</artifactId><version>2.7.1</version></dependency><dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>2.7.1</version></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.8</version></dependency>

(2)dubbo.xml配置文件,這里的配置和spring的方式是一樣的

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"><dubbo:application name="product_provider"></dubbo:application><dubbo:registry protocol="zookeeper" address="192.168.247.129:2181"></dubbo:registry><dubbo:protocol name="dubbo" port="20002"></dubbo:protocol><bean id="productService" class="com.study.service.impl.ProductServiceImpl"></bean><dubbo:service interface="com.study.service.ProductService" ref="productService" loadbalance="roundrobin"></dubbo:service><dubbo:provider timeout="7000"></dubbo:provider>
</beans>

(3)Application啟動類添加注解@ImportResource(locations = {"classpath:dubbo.xml"})導入配置文件

@SpringBootApplication
@ComponentScan(basePackages = "com.study")
@ImportResource(locations = {"classpath:dubbo.xml"})
public class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class, args);}}

Java如何將兩個項目整合,?

2.application.yml + @EnableDubbo注解 + @Service注解(詳解配置) + @Reference注解(詳解配置)?

(1)導入包:

         <dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version></dependency>

(2) application.yml配置文件:

dubbo:application:name: product_proiderregistry:protocol: zookeeperaddress: 192.168.247.129:2181protocol:name: dubboport: 20002provider:timeout: 7000

dubbo框架?(3)服務提供者代碼@Service注解來暴露和注冊服務,注意這里的@Service不是spring的注解,而是dubbo包自帶的注解

package com.study.service.impl;import com.alibaba.dubbo.config.annotation.Service;
import com.study.service.ProductService;
import com.study.service.UserService;
import org.springframework.stereotype.Component;@Component
@Service(interfaceClass = ProductService.class, loadbalance = "roundrobin")
public class ProductServiceImpl implements ProductService {@Overridepublic String getProductByUser() {return "獲取商品信息";}
}

?

(4)服務消費者代碼@Reference注解來引用服務:

package com.study.service.impl;import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.annotation.Service;
import com.study.service.ProductService;
import com.study.service.UserService;
import org.springframework.stereotype.Component;@Component
@Service
public class UserServiceImpl implements UserService {@Reference(interfaceClass = ProductService.class, retries = 0, check = false)private ProductService productService;@Overridepublic String getUser() {System.out.println("獲取用戶信息");System.out.println(this.productService.getProductByUser());return "getUser";}}

Springboot框架??

(5)Application啟動類添加注解@EnableDubbo開啟服務

@SpringBootApplication
@ComponentScan(basePackages = "com.study")
@EnableDubbo
public class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class, args);}}

?

java調用dubbo接口、?

3.DubboConfig配置類文件+ @EnableDubbo注解 + @Service注解 + @Reference注解?

(1)導入包:

         <dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version></dependency>

(2)DubboConfig配置類文件:

服務提供者的配置文件:

package com.study.service.config;import com.alibaba.dubbo.config.*;
import com.study.service.ProductService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class DubboConfig {@Beanpublic ApplicationConfig applicationConfig() {ApplicationConfig applicationConfig = new ApplicationConfig();applicationConfig.setName("product_provider");applicationConfig.setQosEnable(false);return applicationConfig;}@Beanpublic RegistryConfig registryConfig() {RegistryConfig registryConfig = new RegistryConfig();registryConfig.setProtocol("zookeeper");registryConfig.setAddress("192.168.247.129:2181");return registryConfig;}@Beanpublic ProtocolConfig protocolConfig() {ProtocolConfig protocolConfig = new ProtocolConfig();protocolConfig.setName("dubbo");protocolConfig.setPort(20002);return protocolConfig;}@Beanpublic ProviderConfig providerConfig() {ProviderConfig providerConfig = new ProviderConfig();providerConfig.setTimeout(7000);return providerConfig;}@Beanpublic ServiceConfig<ProductService> serviceConfig(ProductService productService) {ServiceConfig<ProductService> serviceConfig = new ServiceConfig();serviceConfig.setRef(productService);serviceConfig.setInterface(ProductService.class);serviceConfig.setLoadbalance("roundrobin");return serviceConfig;}}

服務消費者的配置文件:

package com.study.service.config;import com.alibaba.dubbo.config.*;
import com.study.service.ProductService;
import com.study.service.UserService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class DubboConfig {@Beanpublic ApplicationConfig applicationConfig() {ApplicationConfig applicationConfig = new ApplicationConfig();applicationConfig.setName("user_provider");return applicationConfig;}@Beanpublic RegistryConfig registryConfig() {RegistryConfig registryConfig = new RegistryConfig();registryConfig.setProtocol("zookeeper");registryConfig.setAddress("192.168.247.129:2181");return registryConfig;}@Beanpublic ProtocolConfig protocolConfig() {ProtocolConfig protocolConfig = new ProtocolConfig();protocolConfig.setName("dubbo");protocolConfig.setPort(20001);return protocolConfig;}@Beanpublic ProviderConfig providerConfig() {ProviderConfig providerConfig = new ProviderConfig();providerConfig.setTimeout(7000);return providerConfig;}@Beanpublic ServiceConfig<UserService> serviceConfig(UserService userService /*spring impl注入進來*/) {ServiceConfig<UserService> serviceConfig = new ServiceConfig();serviceConfig.setRef(userService);serviceConfig.setInterface(UserService.class);serviceConfig.setLoadbalance("roundrobin");return serviceConfig;}@Beanpublic ReferenceConfig<ProductService> serviceConfig() {ReferenceConfig referenceConfig = new ReferenceConfig();referenceConfig.setInterface(ProductService.class);referenceConfig.setId("productService");referenceConfig.setRetries(0);referenceConfig.setCheck(false);return referenceConfig;}}

(3)服務提供者代碼@Service注解來暴露和注冊服務,注意這里的@Service不是spring的注解,而是dubbo包自帶的注解

package com.study.service.impl;import com.alibaba.dubbo.config.annotation.Service;
import com.study.service.ProductService;
import com.study.service.UserService;
import org.springframework.stereotype.Component;@Component
@Service
public class ProductServiceImpl implements ProductService {@Overridepublic String getProductByUser() {return "獲取商品信息";}
}

?

(4)服務消費者代碼@Reference注解來引用服務:

package com.study.service.impl;import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.dubbo.config.annotation.Service;
import com.study.service.ProductService;
import com.study.service.UserService;
import org.springframework.stereotype.Component;@Component
@Service
public class UserServiceImpl implements UserService {@Referenceprivate ProductService productService;@Overridepublic String getUser() {System.out.println("獲取用戶信息");System.out.println(this.productService.getProductByUser());return "getUser";}}

?

(5)Application啟動類添加注解@EnableDubbo開啟服務

@SpringBootApplication
@ComponentScan(basePackages = "com.study")
@EnableDubbo
public class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class, args);}}

?

 
 

?

?

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/143142.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息