配置mongodb的依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
配置MongoDb的配置类
@Configuration
//指定 包com.zll.mongodb.main下默认 注入 MainMongo
@EnableMongoRepositories(basePackages = "com.xiaodu.domain", mongoTemplateRef = "mainMongo")
public class MainMongoTemplate {
//注入 名称为 mainMongoProperties 的 MongoProperties 对象
@Resource(name = "mainMongoProperties")
private MongoProperties mongoProperties;
@Primary //设置默认值 当使用 @Autowired 等自动注入时,没有指定name 时 默认使用 带@Primary 注解的对象。
@Bean(name = "mainMongo") //创建方法 交给 spring 创建的名称 为 mainMongo
public MongoTemplate mainMongoTemplate() throws Exception {
return new MongoTemplate(mainFactory(this.mongoProperties));
}
@Bean
@Primary
public MongoDbFactory mainFactory(MongoProperties mongoProperties) throws Exception {
//如果你的 配置文件中 使用的是 uri 这里就配置 uri 网上很多这里配置错了,导致无法正常运行。
return new SimpleMongoDbFactory(new MongoClientURI(mongoProperties.getUri()));
}
}
@Configuration
public class MongoDbConfig {
// @Bean(name="readMongoProperties")
// @ConfigurationProperties(prefix="spring.data.mongodb.read")
// public MongoProperties readMongoProperties() {
// return new MongoProperties();
// }
@Bean(name="mainMongoProperties")
@Primary
@ConfigurationProperties(prefix="spring.data.mongodb.main")
public MongoProperties mainMongoProperties() {
return new MongoProperties();
}
}
server:
port: 5011
spring:
application:
name: demo
data:
mongodb:
main:
uri: mongodb://用户名:密码@url:端口/数据库