由于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
实体类中:
这时候启动项目发现报错,如下:
报错找不到这个bean属性字段,我尝试使用了@Document(collection = "${mongodbCollectionName}")
也还是不行,项目可以正常启动,但是启动后获取MongoDB的集合名是整个引号中的内容
最后实在找不到可以解决的办法,灵机一动改成这样:
完美解决!
至于为什么? 坐等大佬们帮我解惑!!
版权声明:本文为qq_40887780原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。