SpringBoot整合MongoDB(实现一个简单缓存)

SpringBoot是常用开发框架,而MongoDB也是最近越来越火的非关系型数据库,这里使用SpringBoot+MongoDB实现一个小案例,当然MongoDB实际做缓存的可能不多,但是这里仅仅为了一个小demo简单的学习使用,入门上手为目的,更多的复杂查询还需关注MongoDB官网。

如果本篇对你有帮助,还请点赞支持一下!原创作者:bigsai

如果对MongoDB不太了解,还请先看上篇MongoDB从立地到成佛。

创建MongoDB数据库和项目 创建MongoDB数据库

打开Studio 3T数据库管理工具,连接本地MongoDB数据库之后,创建名为test的数据库,在test数据库中创建名为news得集合:

在这里插入图片描述

创建项目

首先,打开IDEA创建项目,选择创建Springboot项目:

在这里插入图片描述


然后在选择Gruop和Aritifact时候分别填写commongodemo,Java Version选择8版本。

在这里插入图片描述

在勾选模块时候,这里勾选Spring web、MongoDB依赖模块,选择合适位置创建项目,项目就可以成功创建:

在这里插入图片描述

预备工作

创建完项目,我们需要做一些预备工作用来完成缓存。我们首先要在项目中的application.properties中添加配置连接到数据库,配置规则为:spring.data.mongodb.uri=mongodb://地址:端口/数据库名,本案例使用本地的MongoDB数据库,默认端口为27017,而使用的MongoDB具体数据库名称为test,那么就可以按照以下进行配置:

spring.data.mongodb.uri=mongodb://localhost:27017/test

这样在项目中就可以连接到本地的MongoDB的test数据库并访问。

其次在项目中com.mongodb目录下分别创建controller,service,pojo文件夹,在controller文件夹下创建newsController.java类,为负责url和逻辑的控制器:

package com.mongodemo.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RestController; @RestController public class newsController { private static Logger logger= LoggerFactory.getLogger(newsController.class); }

其中:

@RestController就声明该类为一个控制器,并且返回JSON字符串给前端。

而Logger对象用于打印日志。在web项目中我们更倾向于使用log打印日志而不在控制台直接输出。

controller创建完毕在service 文件夹下创建NewsService.java类,里面先编写以下内容:

package com.mongodemo.service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.stereotype.Service; @Service public class NewsService { private static Logger logger= LoggerFactory.getLogger(NewsService.class); @Autowired MongoTemplate mongoTemplate; }

其中:

@Service 表示该类为一个service(事务处理),可以被注入到其他对象(Spring帮你管理)。

@Autowired表示要注入对象的意思。而MongoTemplate 就是已经封装好在Spring中操作MongoDB的对象。

service创建完成,我们需要在pojo中创建news类,代表新闻实体内容。

import java.util.Date; public class news { private String title; private Date date; private String brief; private String content; private String author; @Override public String toString() { return "news{" + "title='" + title + '\'' + ", date=" + date + ", brief='" + brief + '\'' + ", content='" + content + '\'' + ", author='" + author + '\'' + '}'; } public news(String title, Date date, String brief, String content, String author) { this.title = title; this.date = date; this.brief = brief; this.content = content; this.author = author; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public String getBrief() { return brief; } public void setBrief(String brief) { this.brief = brief; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyxdz.html