大家可以关注我的微信公众号“秦川以北” 后续更多精彩实用内容分享

​在项目中配置,mongoDB数据库,spring整合

1. 引入pom依赖

<dependency>   
<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2. 在配置文件中配置mongo库信息

  spring:

   data:

  mongodb:

  database: data

     username: data

     password: 1xxx

     host: localhost

     port: 27017

3. 编写你要使用的mongo库中某个collection的实体类,我在这里用的是data

 @Document(collection = "data")
@Data
public class DataMongoObject implements Serializable {
private static final long serialVersionUID = 1L;
/**
* objectId,无需设值
*/
@Id
private String id;

private String token;
/**
* 数据源名称
*/
private String sourceName;
/**
* 数据源描述
*/
private String sourceDesc;

private String updateTime;

private String dataType = "json";
/**
* 用户数据
*/
private Object data;

}

  这个实体类需要实现序列化接口

  这里的@Document,说明使用的当前库中的那个collection

  下面的@Data是lombok中的功能,根据你定义的字段自动注入setter和getter等方法

4. 编写操作mongo的接口

 public interface DataRepository extends MongoRepository<DataMongoObject, String> {

/**
* 通过token进行数据查询,非GridFS
*
* @param token
* @return
*/
DataMongoObject findByToken(String token);

/**
* 通过sourceName进行查询
*
* @param sourceName
* @param pageable
* @return
*/
Page<DataMongoObject> findBySourceName(String sourceName, Pageable pageable);

@Override
@Query(value = "{'updateTime':{'$gte':'1564478681215'}}")
Page<DataMongoObject> findAll(Pageable pageable);

// @Query(value = "{'requestArgs.website':?0}")
// Page<DataMongoObject> findByRequestArsWebsite(String website, Pageable pageable);
}

  编写自己的mongo操作类DataRepository继承MongoRepository

  根据自己的需要些一些CRUD

  @Query注解中时mongo的查询条件,

  上面的意思是查询在1564478681215这个时间之后的数据

5. 编写你的实现类去写具体的CRUD逻辑,以及一些判断条件

如果你只是想使用mongoRepository已经定义好的操作方法,

这个步骤也可以省去,直接看第6步

 @Slf4j
@Service
public class GridFsMongoService {

@Autowired
private DataRepository dataRepository;

public void findAll(int pageNum,int pageSize) {
Page<DataMongoObject> all1 = dataRepository.findAll(new PageRequest(--pageNum, pageSize));
}
}

@Service注解表明这是一个bean,功能是上面第4步mongo操作接口的实现类

6. 编写controller,对数据进行访问

 @Slf4j
@RestController
@RequestMapping("/api/mongo")
public class ParsedDataController {
@Autowired
private DataRepository dataRepository;
/**
* page从零开始的,这里做了处理,从1开始
*
* @param pageNum
* @param pageSize
* @return
*/
@GetMapping("/data/all")
public String findAll(Integer pageNum, Integer pageSize) {
ResultInfo resultInfo = new ResultInfo();
try {
if (StringUtil.isEmpty(pageNum) || pageNum < 1 || pageNum >= Consts.MAX_SIZE) {
pageNum = Consts.DEFAULT_PAGE_NUM;
} if (StringUtil.isEmpty(pageSize) || pageSize < 1 || pageSize >= Consts.MAX_SIZE) {
pageSize = Consts.DEFAULT_PAGE_SIZE;
} Page<DataMongoObject> all = dataRepository.findAll(new PageRequest(--pageNum, pageSize));
resultInfo.setSuccess(true);
resultInfo.setDetail(all);
} catch (Exception e) {
LOGGER.error(e.getMessage(), e);
}
return resultInfo.toString();
}
}

关注公众号秦川以北

后续更多精彩实用内容分享!

 

springboot集成mongo的更多相关文章

  1. SpringBoot集成Shiro并用MongoDB做Session存储

    之前项目鉴权一直使用的Shiro,那是在Spring MVC里面使用的比较多,而且都是用XML来配置,用Shiro来做权限控制相对比较简单而且成熟,而且我一直都把Shiro的session放在mong ...

  2. 【springBoot】springBoot集成redis的key,value序列化的相关问题

    使用的是maven工程 springBoot集成redis默认使用的是注解,在官方文档中只需要2步; 1.在pom文件中引入即可 <dependency> <groupId>o ...

  3. SpringBoot集成security

    本文就SpringBoot集成Security的使用步骤做出解释说明.

  4. springboot集成Actuator

    Actuator监控端点,主要用来监控与管理. 原生端点主要分为三大类:应用配置类.度量指标类.操作控制类. 应用配置类:获取应用程序中加载的配置.环境变量.自动化配置报告等与SpringBoot应用 ...

  5. SpringBoot集成redis的key,value序列化的相关问题

    使用的是maven工程 springBoot集成redis默认使用的是注解,在官方文档中只需要2步; 1.在pom文件中引入即可 <dependency> <groupId>o ...

  6. springboot集成mybatis(二)

    上篇文章<springboot集成mybatis(一)>介绍了SpringBoot集成MyBatis注解版.本文还是使用上篇中的案例,咱们换个姿势来一遍^_^ 二.MyBatis配置版(X ...

  7. springboot集成mybatis(一)

    MyBatis简介 MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyB ...

  8. springboot集成redis(mybatis、分布式session)

    安装Redis请参考:<CentOS快速安装Redis> 一.springboot集成redis并实现DB与缓存同步 1.添加redis及数据库相关依赖(pom.xml) <depe ...

  9. SpringBoot集成jsp

    一.springBoot集成jsp: 1.修改pom文件 <!--集成jsp所需jar包--> <!--jsp页面使用jstl标签--> <dependency> ...

随机推荐

  1. Azure Web App (一)发布你的Net Core Web 项目

    一,引言 今天我们看一下Azure上的一个服务-----Web 应用,我们都知道云计算的三大模式:Iaas(基础设施即服务),Paas(平台即服务),Saas(软件即服务). Iass,其实就是虚拟主 ...

  2. True Liars POJ - 1417

    True Liars After having drifted about in a small boat for a couple of days, Akira Crusoe Maeda was f ...

  3. Window - 安装 Jenkins

    安装方式 war 包放 Tomcat 下 直接安装 jenkins.msi 环境准备 安装 jdk.tomcat,参考:https://www.cnblogs.com/poloyy/p/1326781 ...

  4. day12 文件操作(下)

    目录 一.x模式(控制文件操作模式,与rwa同级) 1 特点 2 格式 二.b模式(控制文件读写内容的模式,与t同级) 1.b模式和t模式的区别 2 b模式应用 3 循环读取文件 三.文件操作的其他方 ...

  5. 本地缓存解决方案-Caffeine Cache

    1.1 关于Caffeine Cache ​ Google Guava Cache是一种非常优秀本地缓存解决方案,提供了基于容量,时间和引用的缓存回收方式.基于容量的方式内部实现采用LRU算法,基于引 ...

  6. MySQL入门(alter语法 与 外键)

    MySQL入门(三) 字段的修改.添加.与删除 修改表字段使用alter table语句,谨记! create table tf1( id int primary key auto_increment ...

  7. scrapy 基础组件专题(三):爬虫中间件

    一.爬虫中间件简介 图 1-1 图 1-2 开始这一张之前需要先梳理一下这张图, 需要明白下载器中间件和爬虫中间件所在的位置 下载器中间件是在引擎(ENGINE)将请求推送给下载器(DOWNLOADE ...

  8. static关键字真能提高Bean的优先级吗?答:真能

    生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...

  9. db2数据库基本添加删除表字段总结

    1.添加字段 alter table [table_name] add [column_name] [column_type] 2.更改字段类型 alter table  [table_name] a ...

  10. P1433 吃奶酪(洛谷)状压dp解法

    嗯?这题竟然是个绿题. 这个题真的不(很)难,我们只是不会计算2点之间的距离,他还给出了公式,这个就有点…… 我们直接套公式去求出需要的值,然后普通的状压dp就可以了. 是的状压dp. 这个题的数据加 ...