search-service 和 search-web 代码
- search-service编程思路
- search-web编程思路
- search-service代码实现
- search-web代码实现
search-service编程思路
创建spring-boot工程
添加依赖
整合es
在gmall-search-service的pom中添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/io.searchbox/jest -->
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>5.3.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna -->
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>4.5.1</version>
</dependency>
对其他工程的依赖
<dependency>
<groupId>com.atguigu.gmall</groupId>
<artifactId>gmall-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.atguigu.gmall</groupId>
<artifactId>gmall-service-util</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
配置文件
server.port=8073
logging.level.root=info
spring.datasource.url=jdbc:mysql://localhost:3306/gmall0722?characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
mybatis.configuration.map-underscore-to-camel-case=true
# dubbo的配置
spring.dubbo.registry.address=192.168.222.20:2181
spring.dubbo.registry.protocol=zookeeper
spring.dubbo.protocol.name=dubbo
spring.dubbo.base-package=com.atguigu.gmall
spring.dubbo.application.name=gmall-search-service
# es配置
#spring.elasticsearch.rest.uris=http://192.168.222.20:9200
spring.elasticsearch.jest.uris=http://192.168.222.20:9200
新增文件
没有
search-web编程思路
创建spring-boot工程
添加依赖
对其他工程的依赖
<groupId>com.atguigu.gmall</groupId>
<artifactId>gmall-web-util</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.atguigu.gmall</groupId>
<artifactId>gmall-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
配置文件
server.port=8083
logging.level.root=info
# dubbo的配置
spring.dubbo.registry.address=192.168.222.20:2181
spring.dubbo.registry.protocol=zookeeper
spring.dubbo.protocol.name=dubbo
spring.dubbo.base-package=com.atguigu.gmall
spring.dubbo.application.name=gmall-search-web
spring.dubbo.consumer.check=false
spring.dubbo.consumer.timeout=600000
#thymeleaf
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.cache=false
新增文件
1.static
包含用于Index和list所用的静态文件
2.templates
包含 index.htiml 和 templates.html
search-web代码实现
- 创建SearchController
-
实现search方法
方法传参为 ModelMap modelMap, PmsSearchParam pmsSearchParam
@RequestMapping(“list.html”)
a.首先创建一个List存PmsSearchSkuInfo类型调用search传入pmsSearchParam查找出pmsSearchParam的值b.将查询结果sku中的属性值去重后抽取出来到一个集合中
实现代码如下
创建一个HashSet命名为valueIdSet来存取全部的valueId
foreach循环List每一次执行都在新创建的List1中用pmsSearchSkuInfo调用getSkuAttrValueList()查出SkuAttrValue的值
放入List1
并且在循环List每一次执行是嵌套一个foreach循环List1
这个嵌套循环在每一次执行都将valueId用pmsSkuAttrValue调用getValueId();方法赋值
并且执行一次valueIdSet.add(valueId);c. 根据属性值查询页面属性和属性值列表 创建一个List存PmsBaseAttrInfo类型的并且通过attrService调 用getAttrInfoListByValueIds方法传入valueIdSet
d.modelMap.put(“attrList”,pmsBaseAttrInfos);
e.modelMap.put(“skuLsInfoList”,pmsSearchSkuInfos);
f.返回list
-