下面列出了怎么用org.springframework.boot.autoconfigure.mongo.MongoProperties的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void initialize(GenericApplicationContext context) {
super.initialize(context);
this.dsl.accept(this);
if (properties.getUri() == null) {
properties.setUri(MongoProperties.DEFAULT_URI);
}
new MongoDataInitializer(properties).initialize(context);
new MongoReactiveDataInitializer(properties).initialize(context);
new MongoReactiveInitializer(properties, embedded).initialize(context);
}
@Bean
MongoClient mongoClient(MongoProperties properties) {
ConnectionString connectionString = new ConnectionString(properties.determineUri());
MongoClientSettings.Builder builder = MongoClientSettings
.builder()
.streamFactoryFactory(NettyStreamFactory::new)
.applyToClusterSettings(b -> b.applyConnectionString(connectionString))
.applyToConnectionPoolSettings(b -> b.applyConnectionString(connectionString))
.applyToServerSettings(b -> b.applyConnectionString(connectionString))
.applyToSslSettings(b -> b.applyConnectionString(connectionString))
.applyToSocketSettings(b -> b.applyConnectionString(connectionString))
.codecRegistry(fromRegistries(
MongoClients.getDefaultCodecRegistry(),
fromProviders(PojoCodecProvider.builder()
.automatic(true)
.register(News.class)
.build())
));
if (connectionString.getReadPreference() != null) {
builder.readPreference(connectionString.getReadPreference());
}
if (connectionString.getReadConcern() != null) {
builder.readConcern(connectionString.getReadConcern());
}
if (connectionString.getWriteConcern() != null) {
builder.writeConcern(connectionString.getWriteConcern());
}
if (connectionString.getApplicationName() != null) {
builder.applicationName(connectionString.getApplicationName());
}
return MongoClients.create(builder.build());
}
private void copyMissingProperties(MongoProperties mongoProperties, MongeezProperties mongeezProperties) {
if (StringUtils.isEmpty(mongeezProperties.getDatabase())) {
mongeezProperties.setDatabase(mongoProperties.getMongoClientDatabase());
}
if (StringUtils.isEmpty(mongeezProperties.getAuthenticationDatabase())) {
mongeezProperties.setAuthenticationDatabase(mongoProperties.getAuthenticationDatabase());
}
if (!mongeezProperties.hasCredentials() && hasCredentials(mongoProperties)) {
// cannot copy credentials because Spring Data MongoDB clears the password after using it
String msg = "Found credentials for Spring Data MongoDB but no credentials for Mongeez. " +
"You need to define both for authentication to work.";
throw new BeanCreationException(msg);
}
}
public EmbeddedMongoInitializer(MongoProperties mongoProperties, EmbeddedMongoProperties embeddedProperties) {
this.properties = mongoProperties;
this.embeddedProperties = embeddedProperties;
}
public MongoReactiveDataInitializer(MongoProperties properties) {
this.properties = properties;
}
public MongoDataInitializer(MongoProperties properties) {
this.properties = properties;
}
EmbeddedMongoDsl(MongoProperties properties, Consumer<EmbeddedMongoDsl> dsl) {
this.dsl = dsl;
this.mongoProperties = properties;
}
@Autowired
public MongoConfiguration(MongoProperties mongoProperties) {
this.mongoProperties = mongoProperties;
}
public MongoProperties getNaive() {
return naive;
}
public void setNaive(MongoProperties naive) {
this.naive = naive;
}
public MongoProperties getComplete() {
return complete;
}
public void setComplete(MongoProperties complete) {
this.complete = complete;
}
private boolean hasCredentials(MongoProperties properties) {
return properties.getUsername() != null && properties.getPassword() != null;
}
@Primary
@Bean(name="companyMongoProperties")
@ConfigurationProperties(prefix="spring.data.mongodb.company")
public MongoProperties companyMongoProperties() {
return new MongoProperties();
}
@Bean(name="organizationMongoProperties")
@ConfigurationProperties(prefix="spring.data.mongodb.organization")
public MongoProperties organizationMongoProperties() {
return new MongoProperties();
}