• 用dubbo+zookeeper+spring搭建一个简单的http接口程序


    dubbo是一个分布式服务框架,是阿里巴巴开发的一个解决RPC远程调用优化的核心框架,包含负载均衡算法,能提高分布式系统的性能。

    zookeeper是hadoop的一个子项目,主要用来解决分布式系统的数据一致性、状态同步、服务集群管理、配置同步等一系列的问题。本文使用zookeeper作为dubbo的服务注册中心。

    技术细节方面:

    dubbo:http://www.dubbo.io

    zookeeper:http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/index.html

    本demo的需求是,有两个功能模块(demo而已嘛):商品、订单。这两个模块分辨要有不同的服务提供者,并且要有不同的注册中心。然后使用一个client来提供http接口,供外部访问。

    本demo专注于dubbo+zookeeper的配置,所以一些数据库连接池配置、数据源配置什么的会省略掉。

    需要的jar包(如果不访问数据库,mysql那个可以不用,其它一个都不能少,少了就会报错):

    首先我们开发商品的服务提供者,在eclipse下新建一个web_server_goods的java project:

    然后我们写一个接口OrderQueryService,代码如下:

    package com.web.server.service;
    
    import java.util.Map;
    
    public interface OrderQueryService {
    
        public Map<String, Object> queryList(Map<String, Object> params);
    
    }

    该接口有一个queryList方法,用于查询订单列表

    然后我们再开发一个实现类OrderQueryServiceImpl,这个类实现了OrderQueryService,代码如下:

    package com.web.server.service.impl;
    
    import java.util.List;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    
    import com.web.server.service.OrderQueryService;
    import com.web.server.util.ServiceUtil;
    
    public class OrderQueryServiceImpl implements OrderQueryService {
    
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        @Override
        public Map<String, Object> queryList(Map<String, Object> params) {
            String sql = "select * from t_order";
            List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
            return ServiceUtil.getServiceResult(list, "success");
        }
    }

    然后我们再建立一个web_server_goods的java project

    写一个接口GoodsQueryService,代码如下:

    package com.web.server.service;
    
    import java.util.Map;
    
    public interface GoodsQueryService {
    
        public Map<String, Object> queryGoodsList(Map<String, Object> params);
    
    }

    该接口有一个queryGoodsList方法,用于查询商品列表

    然后再写一个实现类GoodsQueryServiceImpl,实现了GoodsQueryService,代码如下:

    package com.web.server.service.impl;
    
    import java.util.List;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    
    import com.web.server.service.GoodsQueryService;
    import com.web.server.util.ServiceUtil;
    
    public class GoodsQueryServiceImpl implements GoodsQueryService {
    
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        @Override
        public Map<String, Object> queryGoodsList(Map<String, Object> params, int currentPage, int pageSize) {
    
            StringBuilder sql = new StringBuilder();
            sql.append("select * from t_goods where 1=1 ");
            List<Map<String, Object>> list = jdbcTemplate.queryForList(sql.toString());
            return ServiceUtil.getServiceResult(list, "success");
    
        }
    
    }

     妈的太多了,累死个人!懒得写下去了,就这样吧。

  • 相关阅读:
    101. Symmetric Tree
    mfc实现对话框全屏置顶显示
    qq截图原理
    给对话框添加颜色
    mfc设置半透明对话框
    API介绍
    列表控件学习1
    VC++、MFC
    vs2010 产品密钥
    VS2008 视图资源.rc无法加载的问题及解决方法
  • 原文地址:https://www.cnblogs.com/itbole/p/5274120.html
Copyright © 2020-2023  润新知