springboot连接mongodb

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

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

    
    @Configuration
    @EnableMongoRepositories(basePackages = arrayOf("com.**.repository")) ①
    class MongoDataSourceConfig : AbstractMongoConfiguration() {
    
     @Bean
     override fun mongo(): Mongo {
         val serverAddress = ServerAddress()  ②
      //        val credentials: List = 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: MongoRepositoryString>
    @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" }

你可能感兴趣的:(springboot)