spring boot2.0自定义注入mongoTemplate使用审计标签@EnableMongoAuditing报错

项目原来在spring boot1.5.9版本时候使用@EnableMongoAuditing用同样的方法注入并没有报错,当切换到2.0版本是莫名其妙的出问题了,搞的我一脸懵逼,花了好久都没解决,后来偶然看到我们公司一个大佬的自定义注入的的方式,瞬间感觉到了王者和青铜的差距。
下面是配置代码

@Configuration
@EnableMongoAuditing
@EnableMongoRepositories(basePackages={"com.zee"})
@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这个类之后,再注入就没问题了。 有哪位大佬知道请告诉在下可好。

猜你喜欢

转载自blog.csdn.net/c_kkl213/article/details/81780994
今日推荐