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

​在项目中配置,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. 初用MySQL Mysql示例库 Navicat15

    初用MySQL Mysql示例库 Navicat15   查询MySQl版本 Mysql shell > select version(); 右括号,not version   查看初始密码 M ...

  2. USACO07 MAR Face The Right Way G

    疫情当下,美帝又开始倒牛奶了,这一幕似曾相识啊~~~ 这个题目非常的应景,又是美国佬的奶牛 [题目地址] [一句话题意] N头牛排成一列1<=N<=5000.每头牛或者向前或者向后. 为了 ...

  3. POJO类中布尔类型为啥不让用isXxx命名

    源码面前,了无秘密 <阿里开发规范泰山版>(2020.04.22)-->编程规约-->(一) 命名风格-->第8条规定: [强制]POJO 类中的任何布尔类型的变量,都不 ...

  4. web 部署专题(二):gunicore 并发部署(用gunicorn+gevent启动Flask项目)

    转自:https://blog.csdn.net/dutsoft/article/details/51452598 Flask,webpy,Django都带着 WSGI server,当然性能都不好, ...

  5. JavaScript动画实例:螺旋线

    数学中有各式各样富含诗意的曲线,螺旋线就是其中比较特别的一类.螺旋线这个名词来源于希腊文,它的原意是“旋卷”或“缠卷”.例如,平面螺旋便是以一个固定点开始向外逐圈旋绕而形成的曲线.在2000多年以前, ...

  6. 改造 layui 表格组件实现多重排序

    layui 的表格组件目前只支持单列排序,在实际应用中并不能很好的支撑我们的业务需求.今天一时手痒,决定改造一番以支持多重排序. 实现思路也比较简单,只需要用一个数组来存放所有排序的列,再把这个数组传 ...

  7. git分支管理的策略和冲突问题

    目录 备注: 知识点 关于分支中的冲突 分支管理的策略 分支策略 备注: 本文参考于廖雪峰老师的博客Git教程.依照其博客进行学习和记录,感谢其无私分享,也欢迎各位查看原文. 知识点 git log ...

  8. 转自fineui论坛:解决fineui框架开发中的Designer.aspx.cs丢失问题

    在开发的时候碰到个问题,本来好好的Edit.aspx  Edit.aspx.cs  Edit.Designer.aspx.cs编辑Edit.aspx然后保存,编译的时候 发现Edit.aspx.cs里 ...

  9. pandas | 如何在DataFrame中通过索引高效获取数据?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引. 上一篇文章当中我们介绍了DataFrame数据结构当 ...

  10. postman之测试集

    简单点,说话的方式简单点 步骤1:测试全部通过,哈哈~ 开玩笑! 适用场景:多组数据测试,像排比句那样,有规律,比如姓名,性别,年龄.这时候的测试要求就是这些信息与返回体的结果做比较!! 步骤1:创建 ...