最近接手一个活,用springboot整合mybatis获取一批数据,上传到elastic search建索引。小小研究了一下,操作不多,没有很难。
很好的教程
例
遇到比较典型的错:
No serializer found for class elasticSearch.LogModel and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)
大意是模板类没有set方法,故报错。用对象转json的时候报的。
错2
Jackson2需要引3个maven包
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0.pr3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0.pr3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0.pr3</version>
NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{127.0.0.1}{localhost/127.0.0.1:9201}]]
这个是因为配置文件中没有配,网上有文章写创建conf,真是乱讲。(后来又报了一次这个错,是因为client连接关闭了还调用连接,spring的@autowire标签初始化类只调用一次构造方法,我创建连接的代码写构造方法里了,
当心client关闭后再次访问,会报找不着节点的错误。)
- $ vi config/elasticsearch.yml
- #cluster name
- cluster.name: sojson-application
- #节点名称
- node.name: node-1
- #绑定IP和端口
- network.host:123.88.88.88
- http.port:9200
还有在程序中创建连接时,端口写9300
client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.0.106"), 9300));
9300端口: ES节点之间通讯使用
9200端口: ES节点 和 外部 通讯使用
我们这里是添加节点,故使用9300端口。
启动elastic search报错,用这个命令启动。
failed to delete temp file /Users/lasia/Software/elasticsearch-2.1.0/data/gafisperson/nodes/0/indices/person/1/translog/translog-4113158842387570706.tlog
java.nio.file.NoSuchFileException: /Users/lasia/Software/elasticsearch-2.1.0/data/gafisperson/nodes/0/indices/person/1/translog/translog-4113158842387570706.tlog
./elasticsearch -Des.insecure.allow.root=true -d
后台启动
做这个项目时还用到了springboot mybatis,操作数据库。
很简单,配置mapping.xml,再在类中添加方法就可以了。需要注意添加方法时sql语句的通配参数需要转换一下。
long minSeq(@Param("name")String name);
<select id="minSeq" resultType="long">
select seq from monad_load_config where name = #{name} and deletag = '1'
</select>
而且,map配置文件中有大于号小于号的时候,需要注意转义。
< >
<![CDATA[]]>
发现数据库查询的时候,要分根据seq分组查询,必须先进行排序,再切割(rownum<10),不然只会排切割的区间···还好发现的早,不然得丢好多数据···
SELECT * from (select lower(p.personid) as personid, p.fingerrepeatno as fingerrepeatno
from gafis_person p left join sys_depart d on p.gather_org_code = d.code left join code_ly ly on p.data_sources = ly.code ) m
WHERE m.seq >= 1 and ROWNUM <=10 ; 对勾
select lower(p.personid) as personid, p.fingerrepeatno as fingerrepeatno
from gafis_person p left join sys_depart d on p.gather_org_code = d.code left join code_ly ly on p.data_sources = ly.code
WHERE p.seq >= 1 and ROWNUM <=10; ❌
不久后又增加功能开放端口,删除整个索引,用标签@RequestMapping("/delete")来实现,在类上和方法上分别加这个标签。参数增加:@RequestParam("indexName") String indexName
但要注意,标签内的字符串更改后不rebuild可能会认不出来。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
由于访问接口后返回404页面,这一点需要修改。
将标签@Service改为@RestController
传参标签由@requestparam改为public String DeleteElastic(@PathVariable("deleteName") String deleteName) {配合
@RequestMapping("/delete/{deleteName}")使用
@PathVariable和@RequestParam,分别是从路径里面去获取变量,也就是把路径当做变量,后者是从请求里面获取参数。
/Springmvc/user/page.do?pageSize=3&pageNow=2
pageSize和pageNow应该是属于参数而不是路径,所以应该添加@RequestParam的注解。
如果做成如下URL,则可以使用@PathVariable
/Springmvc/user/page/2/3.do
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
同时还需要注意@Controller和@RestController的区别
@RestController=@Controller+@Reponsebody
只写@Controller会映射到页面,加@Responsebody会直接当作返回结构体来处理,不会对应到页面。
[java] view plain copy
print?
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot!"; //由于是@RestController,因此直接返回数据,而不是view
}
}
@Service和@Controller区别
@Service用于标注业务层组件
@Controller用于标注控制层组件(如struts中的action)
相关推荐
本项目是利用Spring Boot、MyBatis和Bootstrap三大技术栈,构建了一个功能完善的停车位管理系统。接下来,我们将详细探讨这三大技术在系统中的应用及其相互配合。 首先,Spring Boot作为核心框架,它简化了传统...
项目使用了多种技术栈,包括Spring Boot、MyBatis、Redis、Kafka、Elasticsearch等,以确保系统的高性能和可扩展性。 ## 项目的主要特性和功能 ### 用户管理 用户注册与登录支持用户注册、登录、退出登录,以及...
# 基于Spring Boot和MyBatis Plus的爱购网管理系统 ## 项目简介 爱购网管理系统是一个基于Spring Boot和MyBatis Plus框架开发的电商平台后台管理系统。该项目旨在提供一个高效、易用的管理平台,用于管理商品、品牌...
本项目是一个基于Spring Boot和MyBatis框架的用户管理系统,旨在提供用户信息的增删改查功能,并集成了多种技术栈,包括Redis、Elasticsearch、ActiveMQ、RocketMQ等,以实现高效的数据存储和消息处理。 ## 项目的...
它采用了Spring Boot 2、MyBatis Plus、Spring Security、JWT、Redis、ElasticSearch和RabbitMQ等技术栈,提供了丰富的功能,包括商城、商品搜索、客服系统、订单服务、物流服务、用户足迹、用户收藏、店铺关注、...
基于SpringCloud Alibaba+SpringBoot+MybatisPlus+ElasticSearch搭建的商城项目; 系统对接了腾讯第三方:短信、图片等功能。只需要替换对应的key即可使用^_^
在本项目"Demo_springboot_ES_mybatis操作es_DEMO_mybatis"中,我们将探讨如何集成SpringBoot、MyBatis以及Elasticsearch(ES)框架,以实现对ES数据库的基本操作。SpringBoot以其便捷的配置和强大的依赖管理,极大...
本项目标题提到的"springboot之集成mybatis mongo shiro druid redis jsp"是一个整合了多个组件和技术的SpringBoot应用示例,下面我们将详细探讨这些技术及其在项目中的作用。 1. **MyBatis**:MyBatis是一个优秀的...
标题中的“基于Spring Boot + MyBatis,Elasticsearch实现邮件的全字段解析以及全文高亮检索、热词生成、词频统计”涉及到的技术栈主要包括Spring Boot、MyBatis和Elasticsearch,这些都是Java开发中非常重要的工具...
基于微服务技术架构的电子商城系统,前端后端分离部署,采用了 Vue、Spring Boot、MyBatis、Docker、Elasticsearch等核心技术快速搭建系统 项目启动 项目启动需要使用nacos导入document/nacos-config/nacos_config_...
后端:SpringBoot+Mybatis-Plus+logback+Elasticsearch+Redis+MySQL+Jwt+smtp+阿里云OSS 前端:WebPack+VueJs+Ant Design+axios 2.1 公共成果展示 系统登录账号密码和邮箱验证码均可登录 2.2 超管成果展示 超管主...
综上所述,这个开源社区项目利用了 Spring Boot 的便捷性、MyBatis-Plus 的简化 SQL 开发、MySQL 的稳定存储、Redis 的高速缓存以及 Elasticsearch 的高效搜索,构建了一个强大且高效的社区平台。对于开发者来说,这...
本项目是一个基于Spring Boot和Elasticsearch的帖子管理系统,旨在提供一个高效、易用的平台来管理和展示帖子内容。系统整合了常用框架和主流业务的示例代码,支持用户登录、注册、帖子创建、删除、编辑、搜索等功能...
系统采用前后端分离的架构,后端使用Spring Boot、MyBatis Plus、Elasticsearch等技术栈,前端则基于React和Ant Design。 适用人群 后端开发者熟悉Spring Boot、MyBatis Plus、Elasticsearch等技术的开发者。 ...
基于 Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、MongoDB、Docker、RabbitMQ 等主流技术栈,附详细教程,包括Java、Spring、MySQL、Redis、微服务&分….所有源码均经过严格测试,可以直接运行,...
在搜索功能上,项目使用了Elasticsearch,这是一种强大的全文搜索引擎。为了实现高效的前缀提示,开发团队定制了分词器,并使用Logstash导入数据。同时,利用RabbitMQ来处理用户搜索行为,将高频词汇存储到Redis的...
实现功能 ...$ npm install babel-plugin-syntax-jsx babel-plugin-transform-vue-jsx babel-helper-vue-jsx-merge-props babel-preset-es2015 --save-dev $ npm --registry https://registry.npm.taoba