Demo的項目結構:
什么是項目整合管理、(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如何將兩個項目整合,?
(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接口、?
(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);}}
?
?
?
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态