EzyMongo: Configuration

Updated at 1685687008000

1. Configuration List

EzyMongo provides a list of configurations in bellow table:
#PropertyDefault ValueDescription
1database.mongo.urinullMongoDB URI
2database.mongo.hostnullMongoDB host
3database.mongo.port0MongoDB port
4database.mongo.usernamenullMongoDB username
5database.mongo.passwordnullMongoDB password
6database.mongo.databasenullMongoDB database name
7database.mongo.collection.naming.caseNATURECollection name style
8database.mongo.collection.naming.ignored_suffixnullSuffix to remove from collection's name
You can [encrypt sensitive configuration](https://youngmonkeys.org/encrypt-configuration-properties/) like username, password if you want. # 2. An Example You can put bellow configuration to your `application.yaml` file: ```yml # for application.yaml database: mongo: uri: mongodb://ezydata_mongo:ezydata_mongo@localhost:27017/ezydata-mongo database: ezydata-mongo collection: naming: case: UNDERSCORE ignored_suffix: Entity ``` Or for `application.properties` file: ```properties # for application.properties database.mongo.uri=mongodb://ezydata_mongo:ezydata_mongo@localhost:27017/ezydata-mongo database.mongo.database=ezydata-mongo database.mongo.collection.naming.case=UNDERSCORE database.mongo.collection.naming.ignored_suffix=Entity ``` # 3. Auto Configuration To configure automatically, you just need add configuration and add `ezyfox-boot-autoconfigure` to your project dependency like this: ```xml com.tvd12 ezyfox-boot-autoconfigure 1.1.2 ``` # 4. Configure Manually For some reason, you can not use `ezyfox-boot-autoconfigure` you can config like this: ```java import com.mongodb.MongoClient; import com.tvd12.ezydata.database.EzyDatabaseContext; import com.tvd12.ezydata.mongodb.EzyMongoDatabaseContextBuilder; import com.tvd12.ezydata.mongodb.loader.EzySimpleMongoClientLoader; import com.tvd12.ezyfox.annotation.EzyProperty; import com.tvd12.ezyfox.bean.EzyBeanConfig; import com.tvd12.ezyfox.bean.EzyPackagesToScanAware; import com.tvd12.ezyfox.bean.EzySingletonFactory; import com.tvd12.ezyfox.bean.EzySingletonFactoryAware; import com.tvd12.ezyfox.bean.annotation.EzyConfigurationBefore; import com.tvd12.ezyfox.util.EzyPropertiesAware; import lombok.Setter; import java.util.Map; import java.util.Properties; @Setter @EzyConfigurationBefore public class EzyMongoConfiguration implements EzyBeanConfig, EzyPropertiesAware, EzySingletonFactoryAware { @EzyProperty("database.mongo.database") private String databaseName; private Properties properties; private EzySingletonFactory singletonFactory; @Override public void config() { EzyDatabaseContext databaseContext = newMongodbDatabaseContext(); Map repos = databaseContext.getRepositoriesByName(); for (String repoName : repos.keySet()) { singletonFactory.addSingleton(repoName, repos.get(repoName)); } } private EzyDatabaseContext newMongodbDatabaseContext() { EzyMongoDatabaseContextBuilder builder = new EzyMongoDatabaseContextBuilder() .properties(properties) .scan("your_package_to_scan") .mongoClient(newMongoClient()) .databaseName(databaseName); return builder.build(); } protected MongoClient newMongoClient() { return EzySimpleMongoClientLoader.load(properties); } } ``` # Next You can take a look [a list of default functions](/ezydata/guides/ezydatabase-default-functions/).

Table Of Contents