zoukankan      html  css  js  c++  java
  • (转)淘淘商城系列——导入商品数据到索引库——Service层

    http://blog.csdn.net/yerenyuan_pku/article/details/72894187

    通过上文的学习,我相信大家已经学会了如何使用Solrj来操作索引库。本文我们将把商品数据导入到索引库中的Service层代码编写完毕! 
    首先在taotao-search-interface工程中新建一个接口,如下图所示。 

    可以看到importAllItemToIndex方法的返回值类型是TaotaoResult,当你纠结返回值是什么的时候,你就可以使用TaotaoResult。 
    接着在taotao-search-service工程中新建以上接口的SearchItemServiceImpl实现类,为了方便大家复制,现将SearchItemServiceImpl实现类的代码贴出。

    /**
     * 导入商品数据到索引库
     * <p>Title: SearchItemServiceImpl</p>
     * <p>Description: </p>
     * <p>Company: www.itcast.cn</p> 
     * @version 1.0
     */
    @Service
    public class SearchItemServiceImpl implements SearchItemService {
    
        @Autowired
        private SolrServer solrServer;
    
        @Autowired
        private ItemMapper itemMapper;
    
        @Override
        public TaotaoResult importAllItemToIndex() throws Exception {
            // 1、查询所有商品数据。
            List<SearchItem> itemList = itemMapper.getItemList();
            // 2、创建一个SolrServer对象。
            // 3、为每个商品创建一个SolrInputDocument对象。
            SolrInputDocument document = new SolrInputDocument();
            for (SearchItem searchItem : itemList) {
                // 4、为文档添加域
                document.addField("id", searchItem.getId());
                document.addField("item_title", searchItem.getTitle());
                document.addField("item_sell_point", searchItem.getSell_point());
                document.addField("item_price", searchItem.getPrice());
                document.addField("item_image", searchItem.getImage());
                document.addField("item_category_name", searchItem.getCategory_name());
                document.addField("item_desc", searchItem.getItem_desc());
                // 5、向索引库中添加文档。
                solrServer.add(document);
            }
            // 提交
            solrServer.commit();
            // 6、返回TaotaoResult,当你纠结返回值是什么的时候,你就可以使用TaotaoResult。
            return TaotaoResult.ok();
        }
    
    }

    以上代码中要使用ItemMapper,故Spring容器需要能够管理它才行,我们打开applicationContext-dao.xml文件,可以看到扫描包的范围是com.taotao.mapper和com.taotao.search.mapper,这说明之前我们已经配置好了,因此这里不用做任何修改。 

    这里面还有一个问题,Service层要用到一个SolrServer对象,而Spring默认是没有管理这个对象的,我们再单独建一个applicationContext-solr.xml文件来管理,如下图所示。 

    服务编写完之后,下面要做的便是发布服务了,即在applicationContext-service.xml文件中添加如下配置。

    <dubbo:service interface="com.taotao.search.service.SearchItemService" ref="searchItemServiceImpl" timeout="300000" />


    这样,把商品数据导入到索引库中的Service层代码编写完毕!

  • 相关阅读:
    在aarch版编译libEasyRTSPClient库无法通过问题解决
    视频流媒体推流平台RTMP协议是如何进行网络连接并推送视频流的?
    建立视频直播服务用RTMP协议还是RTSP协议?
    如何搭建RTMP视频流媒体推流服务器
    Winsock Select模型范例
    欢迎大家加入broncho社区与broncho共同发展
    在Windows环境使用Broncho映像[转]
    DirectFB几个辅助工具
    Linux手机研发要过五大难关
    让语言选择即时生效
  • 原文地址:https://www.cnblogs.com/telwanggs/p/6961947.html
Copyright © 2011-2022 走看看