增加spring dubbo 用例
This commit is contained in:
		
							
								
								
									
										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>
 | 
			
		||||
		Reference in New Issue
	
	Block a user