快速开始使用Spring-data-mongodb

若MongoDB的安装配置采用默认端口,那么在自动配置的情况下,我们不需要做任何参数配置,就能马上连接上本地的MongoDB。下面直接使用spring-data-mongodb来尝试对mongodb的存取操作。(记得mongod启动您的mongodb)

  • 创建要存储的User实体,包含属性:id、username、age

    public class User {
    
        @Id
    private Long id; private String username;
    private Integer age; public User(Long id, String username, Integer age) {
    this.id = id;
    this.username = username;
    this.age = age;
    } // 省略getter和setter }
  • 实现User的数据访问对象:UserRepository
    public interface UserRepository extends MongoRepository<User, Long> {
    
        User findByUsername(String username);
    
    }
  • 在单元测试中调用
    @RunWith(SpringJUnit4ClassRunner.class)
    @SpringApplicationConfiguration(Application.class)
    public class ApplicationTests { @Autowired
    private UserRepository userRepository; @Before
    public void setUp() {
    userRepository.deleteAll();
    } @Test
    public void test() throws Exception { // 创建三个User,并验证User总数
    userRepository.save(new User(1L, "didi", 30));
    userRepository.save(new User(2L, "mama", 40));
    userRepository.save(new User(3L, "kaka", 50));
    Assert.assertEquals(3, userRepository.findAll().size()); // 删除一个User,再验证User总数
    User u = userRepository.findOne(1L);
    userRepository.delete(u);
    Assert.assertEquals(2, userRepository.findAll().size()); // 删除一个User,再验证User总数
    u = userRepository.findByUsername("mama");
    userRepository.delete(u);
    Assert.assertEquals(1, userRepository.findAll().size()); } }

    参数配置

    通过上面的例子,我们可以轻而易举的对MongoDB进行访问,但是实战中,应用服务器与MongoDB通常不会部署于同一台设备之上,这样就无法使用自动化的本地配置来进行使用。这个时候,我们也可以方便的配置来完成支持,只需要在application.properties中加入mongodb服务端的相关配置,具体示例如下:

    spring.data.mongodb.uri=mongodb://name:pass@localhost:27017/test
    

      

    在尝试此配置时,记得在mongo中对test库创建具备读写权限的用户(用户名为name,密码为pass),不同版本的用户创建语句不同,注意查看文档做好准备工作

    若使用mongodb 2.x,也可以通过如下参数配置,该方式不支持mongodb 3.x。

    spring.data.mongodb.host=localhost spring.data.mongodb.port=27017
    

      

    源码来源

Spring Boot教程(三十六)使用MongoDB数据库(2)的更多相关文章

  1. Spring Boot教程(十六)属性配置文件详解(1)

    相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁 ...

  2. Spring Boot 2.X(十六):应用监控之 Spring Boot Actuator 使用及配置

    Actuator 简介 Actuator 是 Spring Boot 提供的对应用系统的自省和监控功能.通过 Actuator,可以使用数据化的指标去度量应用的运行情况,比如查看服务器的磁盘.内存.C ...

  3. spring boot 常见三十四问

    Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一 Spring Boot.Spring MVC 和 Spring 有什么区别 ...

  4. Spring Boot教程(十四)快速入门

    快速入门 本章主要目标完成Spring Boot基础项目的构建,并且实现一个简单的Http请求处理,通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单.开发快速的特性. 系统要求: ...

  5. Spring Boot教程(十五)使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程

    在之前的所有Spring Boot和Spring Cloud相关博文中,都会涉及Spring Boot工程的创建.而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建,也 ...

  6. Spring Security(三十六):12. Spring MVC Test Integration

    Spring Security provides comprehensive integration with Spring MVC Test Spring Security提供与Spring MVC ...

  7. 学习Spring Boot:(十六)使用Shiro与JWT 实现认证服务

    前言 需要把Web应用做成无状态的,即服务器端无状态,就是说服务器端不会存储像会话这种东西,而是每次请求时access_token进行资源访问.这里我们将使用 JWT 1,基于散列的消息认证码,使用一 ...

  8. Spring Boot教程(十九)RESTful API单元测试

    下面针对该Controller编写测试用例验证正确性,具体如下.当然也可以通过浏览器插件等进行请求提交验证. @RunWith(SpringJUnit4ClassRunner.class) @Spri ...

  9. Spring Boot教程(十八)构建RESTful API

    首先,回顾并详细说明一下在快速入门中使用的@Controller.@RestController.@RequestMapping注解.如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建 ...

  10. Spring Boot教程(十)异步方法测试

    测试 测试代码如下: @Component public class AppRunner implements CommandLineRunner { private static final Log ...

随机推荐

  1. 《深入实践C++模板编程》之四——特例

    1. 所谓模板特例,是针对符合某种条件的模板参数值集合另外声明的模板实现变体. template<typename T> class my_vector; template<> ...

  2. 【js】面向对象学习资料

    1.面向对象模式: https://m.jb51.net/article/74549.htm 2.面向对象基础篇 http://www.cnblogs.com/chiangchou/p/js-oop1 ...

  3. Pytorch中nn.Dropout2d的作用

    Pytorch中nn.Dropout2d的作用 首先,关于Dropout方法,这篇博文有详细的介绍.简单来说, 我们在前向传播的时候,让某个神经元的激活值以一定的概率p停止工作,这样可以使模型泛化性更 ...

  4. 如何调试Python程序 通过IDLE

    在python3.3环境下 1.写一个简单地Python源文件,比如test.py,内容如下: import sys, osdef test(arg1, arg2): print "begi ...

  5. JavaScript中变量声明效率问题

    1 var theString1 = "字符串1"; var theString2 = "字符串1"; var theString3 = "字符串1& ...

  6. html和css制作百度界面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. vue 编辑

    点击文字修改 <div class="baseInfo"> <p class="title">基本信息</p> <p ...

  8. Windows环境用Xampp自制证书(certificate), Chrome(版本 60.0.3112.90通过)

    标题: Self signed certificate no longer valid as of Chrome 58(Chrome58以后自制证书不再有效)原文地址: https://github. ...

  9. Python中文分词组件 jieba

    jieba "结巴"中文分词:做最好的Python中文分词组件 "Jieba" Feature 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分 ...

  10. 公司最喜欢问的Java集合类

    java.util包中包含了一系列重要的集合类,而对于集合类,主要需要掌握的就是它的内部结构,以及遍历集合的迭代模式. 接口:Collection Collection是最基本的集合接口,一个Coll ...