记录一下SpringBoot(2.0.4.RELEASE)+Elasticsearch(6.2.4)+Gradle整合的一个小例子。
1.在Gradle内加入相关jar包的依赖:
1 2 3 4 5 6 7 8 9 | compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.boot:spring-boot-starter-thymeleaf') compile('org.springframework.boot:spring-boot-starter-data-jpa') //添加Spring Data Elasticsearch依赖 compile('org.springframework.boot:spring-boot-starter-data-elasticsearch') //添加JNA依赖 compile('net.java.dev.jna:jna:4.3.0')< br >< br >compile('com.google.guava:guava:26.0-jre') |
2.创建实体对象,并加入Elasticsearch的相关注释:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | package com.wey.pojo.blog; import java.io.Serializable; import org.springframework.data.annotation.Id; import org.springframework.data.elasticsearch.annotations.Document; @Document(indexName="blogcenter",type="blog") //indexName索引名称 可以理解为数据库名 必须为小写不然会报 public class Blog implements Serializable{ private static final long serialVersionUID = 1L; @Id private String id; private String title; private String summary; private String content; protected Blog() { super(); } public Blog(String title, String summary, String content) { this.title = title; this.summary = summary; this.content = content; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } @Override public String toString() { return "Blog [id=" + id + ", title=" + title + ", summary=" + summary + ", content=" + content + "]"; } } |
3.创建Repository
1 2 3 4 5 6 7 8 9 10 11 | package com.wey.repository; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; import org.springframework.stereotype.Component; import com.wey.pojo.blog.Blog; public interface BlogRepository extends ElasticsearchRepository< Blog , String> { } |
4.创建Controller并简单的实现添加及查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | @RestController @RequestMapping("/blogs") public class BlogController { @Autowired BlogRepository blogRepository; @RequestMapping("/add") public Blog add(Blog blog) { return blogRepository.save(blog); } @GetMapping public List< Blog > findAll(){ Iterable< Blog > elements = blogRepository.findAll(); ArrayList< Blog > list = Lists.newArrayList(elements); return list; } @GetMapping("/delete/{id}") public String remove(@PathVariable(name="id") String id) { blogRepository.deleteById(id); return "success"; } } |
5.打开下载好的Elasticsearch(6.2.4)内的elasticsearch.bat文件,等待一会儿直到启动完成。
6.启动SpringBoot应用并简单的测试
添加一条数据:
查询所有数据:
分类:
JAVA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端