增加spring dubbo 用例
This commit is contained in:
		@@ -36,7 +36,7 @@ spring-cloud:Finchley.SR2
 | 
				
			|||||||
| [spring-mongodb](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-mongodb)<br/>[spring-mongodb-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-mongodb-annotation) | spring 整合 mongodb                                          | [Spring Data MongoDB](https://docs.spring.io/spring-data/mongodb/docs/2.1.3.RELEASE/reference/html/#mongo.mongo-db-factory-java) |
 | 
					| [spring-mongodb](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-mongodb)<br/>[spring-mongodb-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-mongodb-annotation) | spring 整合 mongodb                                          | [Spring Data MongoDB](https://docs.spring.io/spring-data/mongodb/docs/2.1.3.RELEASE/reference/html/#mongo.mongo-db-factory-java) |
 | 
				
			||||||
| [spring-memcached](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-memcached)<br/>[spring-memcached-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-memcached-annotation) | spring 整合 memcached(单机+集群)                             | [Xmemcached](https://github.com/killme2008/xmemcached/wiki/Xmemcached%20%E4%B8%AD%E6%96%87%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97) |
 | 
					| [spring-memcached](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-memcached)<br/>[spring-memcached-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-memcached-annotation) | spring 整合 memcached(单机+集群)                             | [Xmemcached](https://github.com/killme2008/xmemcached/wiki/Xmemcached%20%E4%B8%AD%E6%96%87%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97) |
 | 
				
			||||||
| [spring-rabbitmq](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-rabbitmq)<br/>[spring-rabbitmq-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-rabbitmq-annotation) | spring 整合 rabbitmq、消息序列化与反序列化                   | [Rabbitmq](http://www.rabbitmq.com/getstarted.html)<br>[Spring AMQP](https://docs.spring.io/spring-amqp/docs/2.1.3.BUILD-SNAPSHOT/reference/html/) |
 | 
					| [spring-rabbitmq](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-rabbitmq)<br/>[spring-rabbitmq-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-rabbitmq-annotation) | spring 整合 rabbitmq、消息序列化与反序列化                   | [Rabbitmq](http://www.rabbitmq.com/getstarted.html)<br>[Spring AMQP](https://docs.spring.io/spring-amqp/docs/2.1.3.BUILD-SNAPSHOT/reference/html/) |
 | 
				
			||||||
| spring-dubbo<br/>spring-dubbo-annotation                     | spring 整合 dubbo                                            | [Dubbo ](http://dubbo.apache.org/zh-cn/docs/user/quick-start.html) |
 | 
					| [spring-dubbo](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-dubbo)<br/>[spring-dubbo-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-dubbo-annotation) | spring 整合 dubbo                                            | [Dubbo ](http://dubbo.apache.org/zh-cn/docs/user/quick-start.html) |
 | 
				
			||||||
| [spring-websocket](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-websocket)<br/>[spring-websocket-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-websocket-annotation) | spring 整合 websocket                                        | [Spring Websocket](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/web.html#websocket) |
 | 
					| [spring-websocket](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-websocket)<br/>[spring-websocket-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-websocket-annotation) | spring 整合 websocket                                        | [Spring Websocket](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/web.html#websocket) |
 | 
				
			||||||
| [spring-mail](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-email) <br/>[spring-mail-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-email-annotation) | spring 普通文本邮件、附件邮件、模板邮件                      | [Spring Email](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/integration.html#mail) |
 | 
					| [spring-mail](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-email) <br/>[spring-mail-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-email-annotation) | spring 普通文本邮件、附件邮件、模板邮件                      | [Spring Email](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/integration.html#mail) |
 | 
				
			||||||
| [spring-scheduling](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-scheduling)<br/>[spring-scheduling-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-scheduling-annotation) | spring 定时任务                                              | [Task Execution and Scheduling](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/integration.html#scheduling) |
 | 
					| [spring-scheduling](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-scheduling)<br/>[spring-scheduling-annotation](https://github.com/heibaiying/spring-samples-for-all/tree/master/spring/spring-scheduling-annotation) | spring 定时任务                                              | [Task Execution and Scheduling](https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/integration.html#scheduling) |
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								spring/spring-dubbo-annotation/dubbo-ano-common/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								spring/spring-dubbo-annotation/dubbo-ano-common/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
					    <parent>
 | 
				
			||||||
 | 
					        <artifactId>spring-dubbo-annotation</artifactId>
 | 
				
			||||||
 | 
					        <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					        <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					    </parent>
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <artifactId>dubbo-ano-common</artifactId>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.api;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.heibaiying.bean.Product;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 产品服务接口类
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface IProductService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Product queryProductById(int id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<Product> queryAllProducts();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.bean;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 产品实体类
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@AllArgsConstructor
 | 
				
			||||||
 | 
					@NoArgsConstructor
 | 
				
			||||||
 | 
					public class Product implements Serializable {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 产品序列号
 | 
				
			||||||
 | 
					    private int id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 产品名称
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 是否贵重品
 | 
				
			||||||
 | 
					    private Boolean isPrecious;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //生产日期
 | 
				
			||||||
 | 
					    private Date dateInProduced;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //产品价格
 | 
				
			||||||
 | 
					    private float price;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										23
									
								
								spring/spring-dubbo-annotation/dubbo-ano-consumer/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								spring/spring-dubbo-annotation/dubbo-ano-consumer/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
					    <parent>
 | 
				
			||||||
 | 
					        <artifactId>spring-dubbo-annotation</artifactId>
 | 
				
			||||||
 | 
					        <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					        <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					    </parent>
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <artifactId>dubbo-ano-consumer</artifactId>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					            <artifactId>dubbo-ano-common</artifactId>
 | 
				
			||||||
 | 
					            <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					            <scope>compile</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 前端过滤器配置
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    protected Class<?>[] getRootConfigClasses() {
 | 
				
			||||||
 | 
					        return new Class[0];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    protected Class<?>[] getServletConfigClasses() {
 | 
				
			||||||
 | 
					        return new Class[]{ServletConfig.class};
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    protected String[] getServletMappings() {
 | 
				
			||||||
 | 
					        return new String[]{"/"};
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.spring.context.annotation.DubboComponentScan;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.ComponentScan;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.ViewResolver;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.view.InternalResourceViewResolver;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 主配置类
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Configuration
 | 
				
			||||||
 | 
					@EnableWebMvc
 | 
				
			||||||
 | 
					@DubboComponentScan(basePackages = "com.heibaiying.controller") // 扫描dubbo注解
 | 
				
			||||||
 | 
					@ComponentScan(basePackages = {"com.heibaiying.*"})
 | 
				
			||||||
 | 
					public class ServletConfig implements WebMvcConfigurer {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 配置视图解析器
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    @Bean
 | 
				
			||||||
 | 
					    public ViewResolver viewResolver() {
 | 
				
			||||||
 | 
					        InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
 | 
				
			||||||
 | 
					        internalResourceViewResolver.setPrefix("/WEB-INF/jsp/");
 | 
				
			||||||
 | 
					        internalResourceViewResolver.setSuffix(".jsp");
 | 
				
			||||||
 | 
					        internalResourceViewResolver.setExposeContextBeansAsAttributes(true);
 | 
				
			||||||
 | 
					        return internalResourceViewResolver;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 配置静态资源处理器
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
 | 
				
			||||||
 | 
					        configurer.enable();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.config.dubbo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.ApplicationConfig;
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.ConsumerConfig;
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.ProtocolConfig;
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.RegistryConfig;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : dubbo 配置类
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Configuration
 | 
				
			||||||
 | 
					public class DubboConfiguration {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Bean
 | 
				
			||||||
 | 
					    public ApplicationConfig applicationConfig() {
 | 
				
			||||||
 | 
					        ApplicationConfig applicationConfig = new ApplicationConfig();
 | 
				
			||||||
 | 
					        applicationConfig.setName("dubbo-ano-consumer");
 | 
				
			||||||
 | 
					        return applicationConfig;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Bean
 | 
				
			||||||
 | 
					    public ConsumerConfig consumerConfig() {
 | 
				
			||||||
 | 
					        ConsumerConfig consumerConfig = new ConsumerConfig();
 | 
				
			||||||
 | 
					        consumerConfig.setTimeout(3000);
 | 
				
			||||||
 | 
					        consumerConfig.setCheck(false);
 | 
				
			||||||
 | 
					        return consumerConfig;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Bean
 | 
				
			||||||
 | 
					    public RegistryConfig registryConfig() {
 | 
				
			||||||
 | 
					        RegistryConfig registryConfig = new RegistryConfig();
 | 
				
			||||||
 | 
					        registryConfig.setAddress("zookeeper://127.0.0.1:2181");
 | 
				
			||||||
 | 
					        registryConfig.setClient("curator");
 | 
				
			||||||
 | 
					        return registryConfig;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Bean
 | 
				
			||||||
 | 
					    public ProtocolConfig protocolConfig() {
 | 
				
			||||||
 | 
					        ProtocolConfig protocolConfig = new ProtocolConfig();
 | 
				
			||||||
 | 
					        protocolConfig.setName("dubbo");
 | 
				
			||||||
 | 
					        protocolConfig.setPort(20880);
 | 
				
			||||||
 | 
					        return protocolConfig;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.annotation.Reference;
 | 
				
			||||||
 | 
					import com.heibaiying.api.IProductService;
 | 
				
			||||||
 | 
					import com.heibaiying.bean.Product;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Controller;
 | 
				
			||||||
 | 
					import org.springframework.ui.Model;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.PathVariable;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description :
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Controller
 | 
				
			||||||
 | 
					@RequestMapping("sell")
 | 
				
			||||||
 | 
					public class SellController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // dubbo远程引用注解
 | 
				
			||||||
 | 
					    @Reference
 | 
				
			||||||
 | 
					    private IProductService productService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @RequestMapping
 | 
				
			||||||
 | 
					    public String productList(Model model) {
 | 
				
			||||||
 | 
					        List<Product> products = productService.queryAllProducts();
 | 
				
			||||||
 | 
					        model.addAttribute("products", products);
 | 
				
			||||||
 | 
					        return "products";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @RequestMapping("product/{id}")
 | 
				
			||||||
 | 
					    public String productDetail(@PathVariable int id, Model model) {
 | 
				
			||||||
 | 
					        Product product = productService.queryProductById(id);
 | 
				
			||||||
 | 
					        model.addAttribute("product", product);
 | 
				
			||||||
 | 
					        return "product";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 | 
				
			||||||
 | 
					<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <title>产品详情</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					<ul>
 | 
				
			||||||
 | 
					    <li>产品名称:${product.name}</li>
 | 
				
			||||||
 | 
					    <li>产品序列号:${product.id}</li>
 | 
				
			||||||
 | 
					    <li>是否贵重品:${product.isPrecious?"是":"否"}</li>
 | 
				
			||||||
 | 
					    <li>生产日期:<fmt:formatDate value="${product.dateInProduced}" pattern="yyyy年MM月dd日HH点mm分ss秒"/></li>
 | 
				
			||||||
 | 
					    <li>产品价格:${product.price}</li>
 | 
				
			||||||
 | 
					</ul>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 | 
				
			||||||
 | 
					<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <title>产品列表</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					<h3>产品列表:点击查看详情</h3>
 | 
				
			||||||
 | 
					<ul>
 | 
				
			||||||
 | 
					    <c:forEach items="${products}" var="product">
 | 
				
			||||||
 | 
					       <li>
 | 
				
			||||||
 | 
					           <a href="sell/product/${product.id}">${product.name}</a>
 | 
				
			||||||
 | 
					       </li>
 | 
				
			||||||
 | 
					    </c:forEach>
 | 
				
			||||||
 | 
					</ul>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
 | 
				
			||||||
 | 
					         version="4.0">
 | 
				
			||||||
 | 
					</web-app>
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <title>Title</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    hello dubbo consumer!
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										40
									
								
								spring/spring-dubbo-annotation/dubbo-ano-provider/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								spring/spring-dubbo-annotation/dubbo-ano-provider/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
					    <parent>
 | 
				
			||||||
 | 
					        <artifactId>spring-dubbo-annotation</artifactId>
 | 
				
			||||||
 | 
					        <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					        <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					    </parent>
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <artifactId>dubbo-ano-provider</artifactId>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <build>
 | 
				
			||||||
 | 
					        <plugins>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-compiler-plugin</artifactId>
 | 
				
			||||||
 | 
					                <version>3.5.1</version>
 | 
				
			||||||
 | 
					                <configuration>
 | 
				
			||||||
 | 
					                    <source>1.8</source>
 | 
				
			||||||
 | 
					                    <target>1.8</target>
 | 
				
			||||||
 | 
					                </configuration>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					        </plugins>
 | 
				
			||||||
 | 
					    </build>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					            <artifactId>dubbo-ano-common</artifactId>
 | 
				
			||||||
 | 
					            <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					            <!-- compile 默认值 表示被依赖项目需要参与当前项目的编译,还有后续的测试,
 | 
				
			||||||
 | 
					            运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去-->
 | 
				
			||||||
 | 
					            <scope>compile</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description :
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    protected Class<?>[] getRootConfigClasses() {
 | 
				
			||||||
 | 
					        return new Class[0];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    protected Class<?>[] getServletConfigClasses() {
 | 
				
			||||||
 | 
					        return new Class[]{ServletConfig.class};
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    protected String[] getServletMappings() {
 | 
				
			||||||
 | 
					        return new String[]{"/"};
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.spring.context.annotation.DubboComponentScan;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.ComponentScan;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.ViewResolver;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 | 
				
			||||||
 | 
					import org.springframework.web.servlet.view.InternalResourceViewResolver;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 主配置类
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Configuration
 | 
				
			||||||
 | 
					@EnableWebMvc
 | 
				
			||||||
 | 
					@DubboComponentScan(basePackages = "com.heibaiying.service") // 扫描dubbo注解
 | 
				
			||||||
 | 
					@ComponentScan(basePackages = {"com.heibaiying.*"})
 | 
				
			||||||
 | 
					public class ServletConfig implements WebMvcConfigurer {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.config.dubbo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.ApplicationConfig;
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.RegistryConfig;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : dubbo 配置类
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Configuration
 | 
				
			||||||
 | 
					public class DubboConfiguration {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Bean
 | 
				
			||||||
 | 
					    public ApplicationConfig applicationConfig() {
 | 
				
			||||||
 | 
					        ApplicationConfig applicationConfig = new ApplicationConfig();
 | 
				
			||||||
 | 
					        applicationConfig.setName("dubbo-ano-provider");
 | 
				
			||||||
 | 
					        return applicationConfig;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Bean
 | 
				
			||||||
 | 
					    public RegistryConfig registryConfig() {
 | 
				
			||||||
 | 
					        RegistryConfig registryConfig = new RegistryConfig();
 | 
				
			||||||
 | 
					        registryConfig.setAddress("zookeeper://127.0.0.1:2181");
 | 
				
			||||||
 | 
					        registryConfig.setClient("curator");
 | 
				
			||||||
 | 
					        return registryConfig;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.alibaba.dubbo.config.annotation.Service;
 | 
				
			||||||
 | 
					import com.heibaiying.api.IProductService;
 | 
				
			||||||
 | 
					import com.heibaiying.bean.Product;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 产品提供接口实现类
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service(timeout = 5000)
 | 
				
			||||||
 | 
					public class ProductService implements IProductService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static List<Product> productList = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    static {
 | 
				
			||||||
 | 
					        for (int i = 0; i < 20; i++) {
 | 
				
			||||||
 | 
					            productList.add(new Product(i, "产品" + i, i / 2 == 0, new Date(), 66.66f * i));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Product queryProductById(int id) {
 | 
				
			||||||
 | 
					        for (Product product : productList) {
 | 
				
			||||||
 | 
					            if (product.getId() == id) {
 | 
				
			||||||
 | 
					                return product;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public List<Product> queryAllProducts() {
 | 
				
			||||||
 | 
					        return productList;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
 | 
				
			||||||
 | 
					         version="4.0">
 | 
				
			||||||
 | 
					</web-app>
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <title>Title</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    hello dubbo provider!
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										98
									
								
								spring/spring-dubbo-annotation/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								spring/spring-dubbo-annotation/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,98 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					    <artifactId>spring-dubbo-annotation</artifactId>
 | 
				
			||||||
 | 
					    <packaging>pom</packaging>
 | 
				
			||||||
 | 
					    <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <modules>
 | 
				
			||||||
 | 
					        <module>dubbo-ano-consumer</module>
 | 
				
			||||||
 | 
					        <module>dubbo-ano-provider</module>
 | 
				
			||||||
 | 
					        <module>dubbo-ano-common</module>
 | 
				
			||||||
 | 
					    </modules>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <properties>
 | 
				
			||||||
 | 
					        <spring-base-version>5.1.3.RELEASE</spring-base-version>
 | 
				
			||||||
 | 
					    </properties>
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-context</artifactId>
 | 
				
			||||||
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-beans</artifactId>
 | 
				
			||||||
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-core</artifactId>
 | 
				
			||||||
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-web</artifactId>
 | 
				
			||||||
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-webmvc</artifactId>
 | 
				
			||||||
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>javax.servlet</groupId>
 | 
				
			||||||
 | 
					            <artifactId>javax.servlet-api</artifactId>
 | 
				
			||||||
 | 
					            <version>4.0.1</version>
 | 
				
			||||||
 | 
					            <scope>provided</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.projectlombok</groupId>
 | 
				
			||||||
 | 
					            <artifactId>lombok</artifactId>
 | 
				
			||||||
 | 
					            <version>1.18.4</version>
 | 
				
			||||||
 | 
					            <scope>provided</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <!--jsp 标签依赖-->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>taglibs</groupId>
 | 
				
			||||||
 | 
					            <artifactId>standard</artifactId>
 | 
				
			||||||
 | 
					            <version>1.1.2</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>javax.servlet</groupId>
 | 
				
			||||||
 | 
					            <artifactId>jstl</artifactId>
 | 
				
			||||||
 | 
					            <version>1.2</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <!--dubbo 依赖-->
 | 
				
			||||||
 | 
					            <groupId>com.alibaba</groupId>
 | 
				
			||||||
 | 
					            <artifactId>dubbo</artifactId>
 | 
				
			||||||
 | 
					            <version>2.6.2</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.apache.curator</groupId>
 | 
				
			||||||
 | 
					            <artifactId>curator-framework</artifactId>
 | 
				
			||||||
 | 
					            <version>4.0.0</version>
 | 
				
			||||||
 | 
					            <!-- ZooKeeper 3.5.x 和 ZooKeeper 3.4.x 是存在不兼容的情况 详见:<a href="https://curator.apache.org/zk-compatibility.html"/>
 | 
				
			||||||
 | 
					            zookeeper 3.5 目前是beta版本,所以zookeeper 我选择的版本是 zookeeper-3.4.9 作为服务端
 | 
				
			||||||
 | 
					            如果不排除依赖 curator 自动引用的最新的3.5的版本客户端,会出现 KeeperException$UnimplementedException 异常-->
 | 
				
			||||||
 | 
					           <exclusions>
 | 
				
			||||||
 | 
					               <exclusion>
 | 
				
			||||||
 | 
					                   <groupId>org.apache.zookeeper</groupId>
 | 
				
			||||||
 | 
					                   <artifactId>zookeeper</artifactId>
 | 
				
			||||||
 | 
					               </exclusion>
 | 
				
			||||||
 | 
					           </exclusions>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.apache.zookeeper</groupId>
 | 
				
			||||||
 | 
					            <artifactId>zookeeper</artifactId>
 | 
				
			||||||
 | 
					            <version>3.4.13</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
							
								
								
									
										15
									
								
								spring/spring-dubbo/dubbo-common/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								spring/spring-dubbo/dubbo-common/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
					    <parent>
 | 
				
			||||||
 | 
					        <artifactId>spring-dubbo</artifactId>
 | 
				
			||||||
 | 
					        <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					        <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					    </parent>
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <artifactId>dubbo-common</artifactId>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.api;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.heibaiying.bean.Product;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 产品服务接口类
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					public interface IProductService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Product queryProductById(int id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    List<Product> queryAllProducts();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.bean;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import lombok.AllArgsConstructor;
 | 
				
			||||||
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import lombok.NoArgsConstructor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.Serializable;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 产品实体类
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Data
 | 
				
			||||||
 | 
					@AllArgsConstructor
 | 
				
			||||||
 | 
					@NoArgsConstructor
 | 
				
			||||||
 | 
					public class Product implements Serializable {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 产品序列号
 | 
				
			||||||
 | 
					    private int id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 产品名称
 | 
				
			||||||
 | 
					    private String name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 是否贵重品
 | 
				
			||||||
 | 
					    private Boolean isPrecious;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //生产日期
 | 
				
			||||||
 | 
					    private Date dateInProduced;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //产品价格
 | 
				
			||||||
 | 
					    private float price;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										23
									
								
								spring/spring-dubbo/dubbo-consumer/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								spring/spring-dubbo/dubbo-consumer/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
					    <parent>
 | 
				
			||||||
 | 
					        <artifactId>spring-dubbo</artifactId>
 | 
				
			||||||
 | 
					        <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					        <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					    </parent>
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <artifactId>dubbo-consumer</artifactId>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					            <artifactId>dubbo-common</artifactId>
 | 
				
			||||||
 | 
					            <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					            <scope>compile</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.heibaiying.api.IProductService;
 | 
				
			||||||
 | 
					import com.heibaiying.bean.Product;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Controller;
 | 
				
			||||||
 | 
					import org.springframework.ui.Model;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.PathVariable;
 | 
				
			||||||
 | 
					import org.springframework.web.bind.annotation.RequestMapping;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description :
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Controller
 | 
				
			||||||
 | 
					@RequestMapping("sell")
 | 
				
			||||||
 | 
					public class SellController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private IProductService productService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @RequestMapping
 | 
				
			||||||
 | 
					    public String productList(Model model) {
 | 
				
			||||||
 | 
					        List<Product> products = productService.queryAllProducts();
 | 
				
			||||||
 | 
					        model.addAttribute("products", products);
 | 
				
			||||||
 | 
					        return "products";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @RequestMapping("product/{id}")
 | 
				
			||||||
 | 
					    public String productDetail(@PathVariable int id, Model model) {
 | 
				
			||||||
 | 
					        Product product = productService.queryProductById(id);
 | 
				
			||||||
 | 
					        model.addAttribute("product", product);
 | 
				
			||||||
 | 
					        return "product";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,26 @@
 | 
				
			|||||||
 | 
					<?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://dubbo.apache.org/schema/dubbo"
 | 
				
			||||||
 | 
					       xsi:schemaLocation="http://www.springframework.org/schema/beans
 | 
				
			||||||
 | 
					       http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
 | 
				
			||||||
 | 
					       http://dubbo.apache.org/schema/dubbo
 | 
				
			||||||
 | 
					       http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
 | 
				
			||||||
 | 
					    <dubbo:application name="dubbo-consumer">
 | 
				
			||||||
 | 
					        <dubbo:parameter key="shutdown.timeout" value="60000"/> <!-- 单位毫秒 -->
 | 
				
			||||||
 | 
					    </dubbo:application>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!--Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题,默认 check="true"。-->
 | 
				
			||||||
 | 
					    <!--可以关闭所有服务的启动时检查 -->
 | 
				
			||||||
 | 
					    <dubbo:consumer check="false" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 使用zookeeper注册中心暴露发现服务地址 -->
 | 
				
			||||||
 | 
					    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
 | 
				
			||||||
 | 
					    <dubbo:reference id="sellService" interface="com.heibaiying.api.IProductService"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</beans>
 | 
				
			||||||
@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					<?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:context="http://www.springframework.org/schema/context"
 | 
				
			||||||
 | 
					       xmlns:mvc="http://www.springframework.org/schema/mvc"
 | 
				
			||||||
 | 
					       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
 | 
				
			||||||
 | 
					        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
 | 
				
			||||||
 | 
					        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 开启注解包扫描-->
 | 
				
			||||||
 | 
					    <context:component-scan base-package="com.heibaiying.*"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!--使用默认的Servlet来响应静态文件-->
 | 
				
			||||||
 | 
					    <mvc:default-servlet-handler/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 开启注解驱动 -->
 | 
				
			||||||
 | 
					    <mvc:annotation-driven/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 配置视图解析器 -->
 | 
				
			||||||
 | 
					    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
 | 
				
			||||||
 | 
					          id="internalResourceViewResolver">
 | 
				
			||||||
 | 
					        <!-- 前缀 -->
 | 
				
			||||||
 | 
					        <property name="prefix" value="/WEB-INF/jsp/"/>
 | 
				
			||||||
 | 
					        <!-- 后缀 -->
 | 
				
			||||||
 | 
					        <property name="suffix" value=".jsp"/>
 | 
				
			||||||
 | 
					    </bean>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!--引入 dubbo 配置 -->
 | 
				
			||||||
 | 
					    <import resource="classpath:dubbo.xml"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</beans>
 | 
				
			||||||
@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 | 
				
			||||||
 | 
					<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <title>产品详情</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					<ul>
 | 
				
			||||||
 | 
					    <li>产品名称:${product.name}</li>
 | 
				
			||||||
 | 
					    <li>产品序列号:${product.id}</li>
 | 
				
			||||||
 | 
					    <li>是否贵重品:${product.isPrecious?"是":"否"}</li>
 | 
				
			||||||
 | 
					    <li>生产日期:<fmt:formatDate value="${product.dateInProduced}" pattern="yyyy年MM月dd日HH点mm分ss秒"/></li>
 | 
				
			||||||
 | 
					    <li>产品价格:${product.price}</li>
 | 
				
			||||||
 | 
					</ul>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 | 
				
			||||||
 | 
					<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <title>产品列表</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					<h3>产品列表:点击查看详情</h3>
 | 
				
			||||||
 | 
					<ul>
 | 
				
			||||||
 | 
					    <c:forEach items="${products}" var="product">
 | 
				
			||||||
 | 
					       <li>
 | 
				
			||||||
 | 
					           <a href="sell/product/${product.id}">${product.name}</a>
 | 
				
			||||||
 | 
					       </li>
 | 
				
			||||||
 | 
					    </c:forEach>
 | 
				
			||||||
 | 
					</ul>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
 | 
				
			||||||
 | 
							 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 | 
				
			||||||
 | 
					         version="3.1">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <context-param>
 | 
				
			||||||
 | 
					        <param-name>contextConfigLocation</param-name>
 | 
				
			||||||
 | 
					        <param-value>classpath:springApplication.xml</param-value>
 | 
				
			||||||
 | 
					    </context-param>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!--配置spring前端控制器-->
 | 
				
			||||||
 | 
					    <servlet>
 | 
				
			||||||
 | 
					        <servlet-name>springMvc</servlet-name>
 | 
				
			||||||
 | 
					        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 | 
				
			||||||
 | 
					        <init-param>
 | 
				
			||||||
 | 
					            <param-name>contextConfigLocation</param-name>
 | 
				
			||||||
 | 
					            <param-value>classpath:springApplication.xml</param-value>
 | 
				
			||||||
 | 
					        </init-param>
 | 
				
			||||||
 | 
					        <load-on-startup>1</load-on-startup>
 | 
				
			||||||
 | 
					    </servlet>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <servlet-mapping>
 | 
				
			||||||
 | 
					        <servlet-name>springMvc</servlet-name>
 | 
				
			||||||
 | 
					        <url-pattern>/</url-pattern>
 | 
				
			||||||
 | 
					    </servlet-mapping>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</web-app>
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <title>Title</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    hello dubbo consumer!
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										40
									
								
								spring/spring-dubbo/dubbo-provider/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								spring/spring-dubbo/dubbo-provider/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
					    <parent>
 | 
				
			||||||
 | 
					        <artifactId>spring-dubbo</artifactId>
 | 
				
			||||||
 | 
					        <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					        <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					    </parent>
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <artifactId>dubbo-provider</artifactId>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <build>
 | 
				
			||||||
 | 
					        <plugins>
 | 
				
			||||||
 | 
					            <plugin>
 | 
				
			||||||
 | 
					                <groupId>org.apache.maven.plugins</groupId>
 | 
				
			||||||
 | 
					                <artifactId>maven-compiler-plugin</artifactId>
 | 
				
			||||||
 | 
					                <version>3.5.1</version>
 | 
				
			||||||
 | 
					                <configuration>
 | 
				
			||||||
 | 
					                    <source>1.8</source>
 | 
				
			||||||
 | 
					                    <target>1.8</target>
 | 
				
			||||||
 | 
					                </configuration>
 | 
				
			||||||
 | 
					            </plugin>
 | 
				
			||||||
 | 
					        </plugins>
 | 
				
			||||||
 | 
					    </build>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					            <artifactId>dubbo-common</artifactId>
 | 
				
			||||||
 | 
					            <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					            <!-- compile 默认值 表示被依赖项目需要参与当前项目的编译,还有后续的测试,
 | 
				
			||||||
 | 
					            运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去-->
 | 
				
			||||||
 | 
					            <scope>compile</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					package com.heibaiying.service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.heibaiying.api.IProductService;
 | 
				
			||||||
 | 
					import com.heibaiying.bean.Product;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * @author : heibaiying
 | 
				
			||||||
 | 
					 * @description : 产品提供接口实现类
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					@Service
 | 
				
			||||||
 | 
					public class ProductService implements IProductService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static List<Product> productList = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    static {
 | 
				
			||||||
 | 
					        for (int i = 0; i < 20; i++) {
 | 
				
			||||||
 | 
					            productList.add(new Product(i, "产品" + i, i / 2 == 0, new Date(), 66.66f * i));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Product queryProductById(int id) {
 | 
				
			||||||
 | 
					        for (Product product : productList) {
 | 
				
			||||||
 | 
					            if (product.getId() == id) {
 | 
				
			||||||
 | 
					                return product;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public List<Product> queryAllProducts() {
 | 
				
			||||||
 | 
					        return productList;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					<?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://dubbo.apache.org/schema/dubbo"
 | 
				
			||||||
 | 
					       xsi:schemaLocation="http://www.springframework.org/schema/beans
 | 
				
			||||||
 | 
					       http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
 | 
				
			||||||
 | 
					       http://dubbo.apache.org/schema/dubbo
 | 
				
			||||||
 | 
					       http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 提供方应用信息,用于计算依赖关系 -->
 | 
				
			||||||
 | 
					    <dubbo:application name="dubbo-provider"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 使用zookeeper注册中心暴露服务地址 如果是集群配置 用, 分隔地址 -->
 | 
				
			||||||
 | 
					    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 用dubbo协议在20880端口暴露服务 -->
 | 
				
			||||||
 | 
					    <dubbo:protocol name="dubbo" port="20880"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 声明需要暴露的服务接口 -->
 | 
				
			||||||
 | 
					    <dubbo:service interface="com.heibaiying.api.IProductService" ref="productService"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- 和本地bean一样实现服务 -->
 | 
				
			||||||
 | 
					    <bean id="productService" class="com.heibaiying.service.ProductService"/>
 | 
				
			||||||
 | 
					</beans>
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<beans xmlns="http://www.springframework.org/schema/beans"
 | 
				
			||||||
 | 
					       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!--引入 dubbo 配置 -->
 | 
				
			||||||
 | 
					    <import resource="classpath:dubbo.xml"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</beans>
 | 
				
			||||||
@@ -0,0 +1,29 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
 | 
				
			||||||
 | 
							 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 | 
				
			||||||
 | 
					         version="3.1">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <context-param>
 | 
				
			||||||
 | 
					        <param-name>contextConfigLocation</param-name>
 | 
				
			||||||
 | 
					        <param-value>classpath:springApplication.xml</param-value>
 | 
				
			||||||
 | 
					    </context-param>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!--配置spring前端控制器-->
 | 
				
			||||||
 | 
					    <servlet>
 | 
				
			||||||
 | 
					        <servlet-name>springMvc</servlet-name>
 | 
				
			||||||
 | 
					        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 | 
				
			||||||
 | 
					        <init-param>
 | 
				
			||||||
 | 
					            <param-name>contextConfigLocation</param-name>
 | 
				
			||||||
 | 
					            <param-value>classpath:springApplication.xml</param-value>
 | 
				
			||||||
 | 
					        </init-param>
 | 
				
			||||||
 | 
					        <load-on-startup>1</load-on-startup>
 | 
				
			||||||
 | 
					    </servlet>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <servlet-mapping>
 | 
				
			||||||
 | 
					        <servlet-name>springMvc</servlet-name>
 | 
				
			||||||
 | 
					        <url-pattern>/</url-pattern>
 | 
				
			||||||
 | 
					    </servlet-mapping>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</web-app>
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <title>Title</title>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    hello dubbo provider!
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										98
									
								
								spring/spring-dubbo/pom.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								spring/spring-dubbo/pom.xml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,98 @@
 | 
				
			|||||||
 | 
					<?xml version="1.0" encoding="UTF-8"?>
 | 
				
			||||||
 | 
					<project xmlns="http://maven.apache.org/POM/4.0.0"
 | 
				
			||||||
 | 
					         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
				
			||||||
 | 
					         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 | 
				
			||||||
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <groupId>com.heibaiying</groupId>
 | 
				
			||||||
 | 
					    <artifactId>spring-dubbo</artifactId>
 | 
				
			||||||
 | 
					    <packaging>pom</packaging>
 | 
				
			||||||
 | 
					    <version>1.0-SNAPSHOT</version>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <modules>
 | 
				
			||||||
 | 
					        <module>dubbo-consumer</module>
 | 
				
			||||||
 | 
					        <module>dubbo-provider</module>
 | 
				
			||||||
 | 
					        <module>dubbo-common</module>
 | 
				
			||||||
 | 
					    </modules>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <properties>
 | 
				
			||||||
 | 
					        <spring-base-version>5.1.3.RELEASE</spring-base-version>
 | 
				
			||||||
 | 
					    </properties>
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    <dependencies>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-context</artifactId>
 | 
				
			||||||
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-beans</artifactId>
 | 
				
			||||||
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-core</artifactId>
 | 
				
			||||||
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-web</artifactId>
 | 
				
			||||||
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.springframework</groupId>
 | 
				
			||||||
 | 
					            <artifactId>spring-webmvc</artifactId>
 | 
				
			||||||
 | 
					            <version>${spring-base-version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>javax.servlet</groupId>
 | 
				
			||||||
 | 
					            <artifactId>javax.servlet-api</artifactId>
 | 
				
			||||||
 | 
					            <version>4.0.1</version>
 | 
				
			||||||
 | 
					            <scope>provided</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.projectlombok</groupId>
 | 
				
			||||||
 | 
					            <artifactId>lombok</artifactId>
 | 
				
			||||||
 | 
					            <version>1.18.4</version>
 | 
				
			||||||
 | 
					            <scope>provided</scope>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <!--jsp 标签依赖-->
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>taglibs</groupId>
 | 
				
			||||||
 | 
					            <artifactId>standard</artifactId>
 | 
				
			||||||
 | 
					            <version>1.1.2</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>javax.servlet</groupId>
 | 
				
			||||||
 | 
					            <artifactId>jstl</artifactId>
 | 
				
			||||||
 | 
					            <version>1.2</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <!--dubbo 依赖-->
 | 
				
			||||||
 | 
					            <groupId>com.alibaba</groupId>
 | 
				
			||||||
 | 
					            <artifactId>dubbo</artifactId>
 | 
				
			||||||
 | 
					            <version>2.6.2</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.apache.curator</groupId>
 | 
				
			||||||
 | 
					            <artifactId>curator-framework</artifactId>
 | 
				
			||||||
 | 
					            <version>4.0.0</version>
 | 
				
			||||||
 | 
					            <!-- ZooKeeper 3.5.x 和 ZooKeeper 3.4.x 是存在不兼容的情况 详见:<a href="https://curator.apache.org/zk-compatibility.html"/>
 | 
				
			||||||
 | 
					            zookeeper 3.5 目前是beta版本,所以zookeeper 我选择的版本是 zookeeper-3.4.9 作为服务端
 | 
				
			||||||
 | 
					            如果不排除依赖 curator 自动引用的最新的3.5的版本客户端,会出现 KeeperException$UnimplementedException 异常-->
 | 
				
			||||||
 | 
					           <exclusions>
 | 
				
			||||||
 | 
					               <exclusion>
 | 
				
			||||||
 | 
					                   <groupId>org.apache.zookeeper</groupId>
 | 
				
			||||||
 | 
					                   <artifactId>zookeeper</artifactId>
 | 
				
			||||||
 | 
					               </exclusion>
 | 
				
			||||||
 | 
					           </exclusions>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <groupId>org.apache.zookeeper</groupId>
 | 
				
			||||||
 | 
					            <artifactId>zookeeper</artifactId>
 | 
				
			||||||
 | 
					            <version>3.4.13</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</project>
 | 
				
			||||||
		Reference in New Issue
	
	Block a user