项目原来在spring boot1.5.9版本时候使用@EnableMongoAuditing用同样的方法注入并没有报错,当切换到2.0版本是莫名其妙的出问题了,搞的我一脸懵逼,花了好久都没解决,后来偶然看到我们公司一个大佬的自定义注入的的方式,瞬间感觉到了王者和青铜的差距。
下面是配置代码
@Configuration
@EnableMongoAuditing
@EnableMongoRepositories(basePackages={"com.test"})
@PropertySource("classpath:mongodb/mongodbConfigure.properties")
@ConfigurationProperties(prefix = "spring.data.mongodb.data")
public class SpringMongoConfig extends AbstractMongoConfiguration {
private String dbName;
private String host;
private Integer port;
@Override
protected String getDatabaseName() {
return dbName;
}
@Primary
@Override
@Bean
public MongoClient mongoClient() {
MongoClientOptions opt = MongoClientOptions.builder()
.writeConcern( WriteConcern.JOURNALED)
.build();
MongoClient my = new MongoClient(new ServerAddress( host, port ), opt);
return my;
}
@Primary
@Bean
public MongoDbFactory mongoDbFactory() {
return new SimpleMongoDbFactory(mongoClient(), getDatabaseName());
}
@Primary
@Bean
public MongoTemplate mongoTemplate() throws Exception {
MongoTemplate my = new MongoTemplate(mongoDbFactory());
my.setWriteResultChecking( WriteResultChecking.EXCEPTION );
return my;
}
}
不知道为什么继承AbstractMongoConfiguration这个类之后,再注入就没问题了。 有哪位大佬知道请告诉在下可好。