MongoDB动态配置集合名@Document(collection = "#{}")

由于MongoDB中@Document注解适用于实体类上,所以项目的开始就写死了集合名:@Document(collection = "test")
但是随着项目的进行,需要动态配置此处的集合名,于是我就开始尝试动态配置

首先创建一个@Configuration类

@Configuration
public class MongodbCollectionConfig {

    @Value("${spring.data.mongodb.collection-name}")
    private String collectionName;

    @Bean
    public String mongodbCollectionName(){
        return collectionName;
    }
}

配置文件中:

spring.data.mongodb.collection-name=test

实体类中:
在这里插入图片描述
这时候启动项目发现报错,如下:
MongoDB动态配置集合名@Document(collection =
报错找不到这个bean属性字段,我尝试使用了@Document(collection = "${mongodbCollectionName}")也还是不行,项目可以正常启动,但是启动后获取MongoDB的集合名是整个引号中的内容

最后实在找不到可以解决的办法,灵机一动改成这样:在这里插入图片描述

完美解决!

至于为什么? 坐等大佬们帮我解惑!!

你可能感兴趣的:(java,SpringBoot,MongoDB)