springboot中mongodb集成与使用

mognodb是由C++语言编写的,是一个基于分布式文件存储的开源nosql数据库系统,旨在为WEB应用提供可扩展的高性能数据存储解决方案。在高负载的情况下,添加更多的节点,可以保证服务器性能。

由于其的高性能,以及文档型的存储结构,在开发的使用已经非常普及了。那么接下来就来看一下如何在springboot中集成使用mongodb。

依赖引入

springboot一个强大的特性就是自动配置功能,那么其为mongodb的自动集成提供了一个starter,在我们的项目中加入即可,如下:

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

同时我们亦加入lombok(详见Lombok插件讲解)和test相关的依赖,方便后面的案例演示:

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
配置引入

springboot的自动配置属性在MongoProperties中,其为提供了uri、host+port两种方式去配置mongodb,其中如果需要密码验证时只能使用host+port的方式进行配置(具体可详见源码)。这里,我们使用host+port的方式,并不去验证密码,配置信息如下:

spring:
  data:
    mongodb:
#      uri: mongodb://127.0.0.1:27017/sbac_master
      host: 127.0.0.1
      port: 27017
#      username: sbac
#      password: sbac
      database: sbac_master
使用案例

经过依赖引入与自动配置,mongodb以及集成完毕了,到这里就该是演示如何使用了。

我们先定义一个PO实体,拥有一些简单的字段,如下所示:

@Data
@ToString
@Document(collection = "user")
public class User {

    private String id;
    private String username;
    private String password;
    private String telephone;
    private String editor;
    private Date createTime;
    private Date updateTime;
}

然后使用spring-data形式实现持久化层(当然持久层方面亦可以使用MongoTemplate来实现,笔者更喜欢使用MongoTemplate),如下:

public interface UserRepository extends MongoRepository<User, String> {

    User findByUsername(String username);
}

到这里,就可以直接对持久层的接口进行测试了,下面是我们的测试代码:

@SpringBootTest
@RunWith(SpringRunner.class)
public class UserRepositoryTest {

    @Resource
    private UserRepository userRepository;

    @Test
    public void testInsert() {
        User user = new User();
        user.setUsername("simple");
        user.setPassword("123456");
        user.setTelephone("18888888888");
        user.setEditor("admin");
        user.setCreateTime(new Date());
        user.setUpdateTime(new Date());
        userRepository.insert(user);
    }

    @Test
    public void testFindByUsername() {
        User user = userRepository.findByUsername("simple");
        System.out.println(user);
    }
}
案例源码

案例源码地址:https://github.com/lazycece/springboot-actual-combat/tree/master/springboot-ac-mongodb/springboot-ac-mongodb-simple

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值