企业级 SpringBoot 教程 springboot整合mongodb

Posted leafitit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了企业级 SpringBoot 教程 springboot整合mongodb相关的知识,希望对你有一定的参考价值。

准备工作

  • 安装 MongoDB
  • jdk 1.8
  • maven 3.0
  • idea

环境依赖

在pom文件引入spring-boot-starter-data-mongodb依赖:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>

数据源配置

如果mongodb端口是默认端口,并且没有设置密码,可不配置,sprinboot会开启默认的。

spring.data.mongodb.uri=mongodb://localhost:27017/springboot-db

mongodb设置了密码,这样配置:

spring.data.mongodb.uri=mongodb://name:[email protected]:27017/dbname

定义一个简单的实体

package com.forezp.entity;
 
import org.springframework.data.annotation.Id;
 
 
public class Customer {
 
    @Id
    public String id;
 
    public String firstName;
    public String lastName;
 
    public Customer() {}
 
    public Customer(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }
 
    @Override
    public String toString() {
        return String.format(
                "Customer[id=%s, firstName=‘%s‘, lastName=‘%s‘]",
                id, firstName, lastName);
    }
 
}

数据操作dao层

public interface CustomerRepository extends MongoRepository<Customer, String> {
 
    public Customer findByFirstName(String firstName);
    public List<Customer> findByLastName(String lastName);
 
}

写一个接口,继承MongoRepository,这个接口有了几本的CURD的功能。如果你想自定义一些查询,比如根据firstName来查询,获取根据lastName来查询,只需要定义一个方法即可。注意firstName严格按照存入的mongodb的字段对应。在典型的java的应用程序,写这样一个接口的方法,需要自己实现,但是在springboot中,你只需要按照格式写一个接口名和对应的参数就可以了,因为springboot已经帮你实现了。

测试

 
@SpringBootApplication
public class SpringbootMongodbApplication  implements CommandLineRunner {
 
 
    @Autowired
    private CustomerRepository repository;
 
    public static void main(String[] args) {
        SpringApplication.run(SpringbootMongodbApplication.class, args);
    }
 
 
    @Override
    public void run(String... args) throws Exception {
        repository.deleteAll();
 
        // save a couple of customers
        repository.save(new Customer("Alice", "Smith"));
        repository.save(new Customer("Bob", "Smith"));
 
        // fetch all customers
        System.out.println("Customers found with findAll():");
        System.out.println("-------------------------------");
        for (Customer customer : repository.findAll()) {
            System.out.println(customer);
        }
        System.out.println();
 
        // fetch an individual customer
        System.out.println("Customer found with findByFirstName(‘Alice‘):");
        System.out.println("--------------------------------");
        System.out.println(repository.findByFirstName("Alice"));
 
        System.out.println("Customers found with findByLastName(‘Smith‘):");
        System.out.println("--------------------------------");
        for (Customer customer : repository.findByLastName("Smith")) {
            System.out.println(customer);
        }
    }

完整的项目源码来源

以上是关于企业级 SpringBoot 教程 springboot整合mongodb的主要内容,如果未能解决你的问题,请参考以下文章

企业级 SpringBoot 教程 springboot整合mongodb

企业级 SpringBoot 教程 (十三)springboot集成spring cache

企业级 SpringBoot 教程 (十三)springboot集成spring cache

企业级 SpringBoot 教程 (十五)Springboot整合RabbitMQ

springboot2 后台管理系统 springbootplus

企业级 SpringBoot 教程 springboot整合 beatlsql