springboot连接mongodb

来源:互联网 发布:剑三正太脸型数据 编辑:程序博客网 时间:2024/06/05 10:04
  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 {@Autowiredlateinit var testMongoRepository: TestMongoRepository@Testfun test01() {    testMongoRepository.save(TestMongo(null, "lin"))    println(testMongoRepository.findAll()) }}

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

原创粉丝点击