Spring Boot切换MySQL为MongoDB时@EntityScan注解如何修改?
适配MongoDB的Spring Boot主应用类调整方案
当你从MySQL切换到MongoDB时,原有的JPA相关注解(@EntityScan、@EnableJpaRepositories)就不再适用了——MongoDB用的是Spring Data MongoDB专属的注解体系,下面是具体的修改步骤:
1. 替换JPA相关注解
- 移除针对MySQL/JPA的
@EnableJpaRepositories和@EntityScan注解 - 添加两个MongoDB专属注解:
@EnableMongoRepositories:作用类似@EnableJpaRepositories,用于扫描MongoDB的数据访问层Repository接口@MongoEntityScan:替代@EntityScan,用于扫描带有@Document注解的MongoDB实体类
2. 修改后的主应用类代码
@EnableFeignClients(basePackages = {"com.saman.kamal.nimalservice"}) @EnableDiscoveryClient @SpringBootApplication(scanBasePackages = {"com.saman.kamal.nimalservice"}) @EnableOAuth2Client @EnableMongoRepositories(basePackages = {"com.saman.kamal.nimalservice.repository"}) @MongoEntityScan(basePackages = {"com.saman.kamal.nimalservice.domain"}) public class HuththaApplication { public static void main(String[] args) { SpringApplication.run(HuththaApplication.class, args); } }
3. 关键注解说明
@MongoEntityScan:会自动扫描指定包下所有标记了@Document的类(比如你提供的EbankLog实体),让Spring Data MongoDB能识别这些实体并映射到MongoDB的集合中。@EnableMongoRepositories:确保Spring能发现你定义的MongoDB Repository接口,自动生成数据访问的代理实现。
额外提示
请确认你的项目已经引入了spring-boot-starter-data-mongodb依赖,如果没有,需要在pom.xml(Maven)或build.gradle(Gradle)中添加对应依赖。
内容的提问来源于stack exchange,提问作者Saman Chandana
相关产品推荐
相关产品推荐

