springboot连接mongodb

  1. 安装mongodb 略
  2. 这里用的maven 项目 在pom.xml中添加依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
  3. 创建配置类 MongoDataSourceConfig

    
    @Configuration
    @EnableMongoRepositories(basePackages = arrayOf("com.**.repository")) ①
    class MongoDataSourceConfig : AbstractMongoConfiguration() {
    
     @Bean
     override fun mongo(): Mongo {
         val serverAddress = ServerAddress()  ②
      //        val credentials: List<MongoCredential> = listOf() ③
         return MongoClient(serverAddress) ④
     }
    
     override fun getDatabaseName(): String {
         return "test" ⑤
     }
    
    }

    ① 开启mongodb的配置 basPackages 的值是所有 repository的路径
    ② 服务的地址,可以是url,也可以是地址和端口号,可以看下源码的构造方法,无参的构造方法是 localhost:27017
    ③ credentials mongodb默认没有鉴权,如果自己创建了账号,可以创建 MongoCredential 的list 作为 ④的第二个参数
    ④ 通过 MongoClient 返回一个 Mongo对象
    ⑤ 这里是配置数据库名

    到这里就配置完了

  4. 测试

    创建一个data bean

    @Document(collection = "testmongo")
    data class TestMongo(
         @Id
         val userId: String?,
         val userName: String?
    )
    interface TestMongoRepository: MongoRepository<TestMongo, String>
    @RunWith(SpringRunner::class)
    @BootstrapWith(SpringBootTestContextBootstrapper::class)
    @ContextConfiguration(classes = arrayOf(MongoDataSourceConfig::class))
    class TestMongoTest {
    
    @Autowired
    lateinit var testMongoRepository: TestMongoRepository
    
    @Test
    fun test01() {
        testMongoRepository.save(TestMongo(null, "lin"))
        println(testMongoRepository.findAll())
     }
    }

    结果: { "_id" : { "$oid" : "592d3d00528feb29a893982d" }, "_class" : "com.kotlin.lin.entity.TestMongo", "userName" : "lin" }

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值