当前位置: 首页 > news >正文

视频拍摄手法宁波优化网站排名软件

视频拍摄手法,宁波优化网站排名软件,上海门户网站制作公司,大良网站建设公司Spring Boot 通过其自动配置 (Auto-Configuration) 机制,极大的简化了 MongoDB 的连接和集成。当 Spring Boot 检测到 MongoDB Java 驱动程序 (如 mongodb-driver-sync 或 mongodb-driver-reactivestreams) 和 spring-boot-starter-data-mongodb 在类路径上时&#…

Spring Boot 通过其自动配置 (Auto-Configuration) 机制,极大的简化了 MongoDB 的连接和集成。当 Spring Boot 检测到 MongoDB Java 驱动程序 (如 mongodb-driver-syncmongodb-driver-reactivestreams) 和 spring-boot-starter-data-mongodb 在类路径上时,它会自动尝试配置必要的 bean 来连接 MongoDB。

Spring Boot 如何自动配置 MongoDB 连接:

  1. 依赖检测:

    • 首先,你需要将 spring-boot-starter-data-mongodb 依赖添加到你的 pom.xml (Maven) 或 build.gradle (Gradle) 文件中。这个 starter 会引入必要的 MongoDB 驱动和 Spring Data MongoDB 库。
    <!-- For imperative programming -->
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency><!-- For reactive programming (optional, if you use WebFlux) -->
    <!--
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
    </dependency>
    -->
    
  2. MongoAutoConfiguration:

    • 这个类是 MongoDB 自动配置的核心。它会检查类路径上是否存在 MongoClient (来自 MongoDB Java 驱动)。
    • 如果存在,它会尝试创建一个 MongoClient bean。
  3. MongoDataAutoConfiguration:

    • 这个类负责配置 Spring Data MongoDB 特有的组件。
    • 它会检查是否存在 MongoTemplate (用于命令式编程) 或 ReactiveMongoTemplate (用于响应式编程)。
    • 如果 MongoClientMongoDatabaseFactory 存在,并且没有用户自定义的 MongoTemplate (或 ReactiveMongoTemplate),它会自动配置一个。
    • 它还会配置 MappingMongoConverter 用于对象与 BSON 文档之间的映射。
    • 它也支持 @EnableMongoRepositories 的自动配置,扫描并创建 MongoRepository 的实现。
  4. 属性驱动:

    • 自动配置严重依赖于 application.propertiesapplication.yml 文件中的配置。Spring Boot 提供了一系列以 spring.data.mongodb.* 为前缀的属性来定制连接。

可以自定义的配置 (通过 application.propertiesapplication.yml):

以下是一些最常用的可配置属性:

  1. 基本连接信息:

    • spring.data.mongodb.uri: 推荐使用此属性,它是一个标准的 MongoDB 连接字符串,可以包含所有连接信息。
      • 示例: spring.data.mongodb.uri=mongodb://user:secret@host1:27017,host2:27017/mydb?replicaSet=myReplicaSet&readPreference=primary
    • 如果未使用 uri,则可以使用以下独立属性:
      • spring.data.mongodb.host: MongoDB 服务器主机名 (默认: localhost)。
      • spring.data.mongodb.port: MongoDB 服务器端口 (默认: 27017)。
      • spring.data.mongodb.database: 要连接的数据库名称。如果未指定,它通常会根据 uri 或其他上下文确定,或者你需要在代码中显式指定。
      • spring.data.mongodb.username: 连接数据库的用户名。
      • spring.data.mongodb.password: 连接数据库的密码。
      • spring.data.mongodb.authentication-database: 用于身份验证的数据库 (如果与 spring.data.mongodb.database 不同)。
  2. 连接池选项 (通过 MongoClientSettings):
    Spring Boot 会根据属性配置底层的 MongoClientSettings。一些常见的配置(尽管更高级的池配置可能需要自定义 MongoClient bean)可以通过 uri 的参数或特定的嵌套属性来设置:

    • uri 中的参数:例如 ?maxPoolSize=50&minPoolSize=5
    • spring.data.mongodb.additional-options.*: 可以用来设置更底层的 MongoClientOptions,但这在较新版本中可能被更具体的属性或 MongoClientSettingsBuilderCustomizer 所取代。
  3. SSL/TLS 配置:

    • spring.data.mongodb.ssl.enabled=true: 启用 SSL 连接。
    • spring.data.mongodb.ssl.key-store: 密钥库路径。
    • spring.data.mongodb.ssl.key-store-password: 密钥库密码。
    • spring.data.mongodb.ssl.trust-store: 信任库路径。
    • spring.data.mongodb.ssl.trust-store-password: 信任库密码。
    • spring.data.mongodb.ssl.invalid-host-name-allowed=false: 是否允许无效的主机名。
  4. 读写关注点 (Read/Write Concerns) 和读偏好 (Read Preference):

    • spring.data.mongodb.read-preference: 设置读偏好 (e.g., primary, secondary, nearest)。
    • spring.data.mongodb.write-concern: 设置写关注点 (e.g., ACKNOWLEDGED, W1, MAJORITY)。
    • 这些通常在 uri 中设置更方便,例如 ?readPreference=secondary&writeConcern=majority
  5. GridFS 配置:

    • spring.data.mongodb.gridfs.database: GridFS 使用的数据库 (如果与主数据库不同)。
    • spring.data.mongodb.gridfs.bucket: GridFS bucket 的名称 (默认: fs)。

更高级的自定义方式:

如果属性配置不足以满足需求,你可以通过定义自己的 bean 来覆盖自动配置:

  1. 自定义 MongoClient:
    你可以完全控制 MongoClient 的创建过程,包括所有 MongoClientSettings

    import com.mongodb.client.MongoClient;
    import com.mongodb.client.MongoClients;
    import com.mongodb.ConnectionString;
    import com.mongodb.MongoClientSettings;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;@Configuration
    public class MongoConfig {@Beanpublic MongoClient mongoClient() {ConnectionString connectionString = new ConnectionString("mongodb://localhost:27017/mydatabase");MongoClientSettings mongoClientSettings = MongoClientSettings.builder().applyConnectionString(connectionString)// Add more custom settings here// .applicationName("MyCoolApp")// .readPreference(ReadPreference.secondaryPreferred()).build();return MongoClients.create(mongoClientSettings);}
    }
    
  2. 使用 MongoClientSettingsBuilderCustomizer:
    这是一个更细粒度的方式,它允许你修改由自动配置创建的 MongoClientSettings.Builder,而不是完全替换 MongoClient

    import com.mongodb.MongoClientSettings;
    import com.mongodb.ReadPreference;
    import org.springframework.boot.autoconfigure.mongo.MongoClientSettingsBuilderCustomizer;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;@Configuration
    public class MongoCustomizerConfig {@Beanpublic MongoClientSettingsBuilderCustomizer mongoClientSettingsBuilderCustomizer() {return builder -> builder.applicationName("MySpringBootApp").readPreference(ReadPreference.secondaryPreferred()).retryWrites(true);}
    }
    
  3. 自定义 MongoTemplateMappingMongoConverter:
    如果你需要自定义对象映射行为或 MongoTemplate 的某些方面,也可以提供自己的 bean 定义。

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.mongodb.MongoDatabaseFactory;
    import org.springframework.data.mongodb.core.MongoTemplate;
    import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
    // ... other imports@Configuration
    public class MongoTemplateConfig {// Assuming MongoDatabaseFactory is auto-configured or defined elsewhere@Beanpublic MongoTemplate mongoTemplate(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter converter) {// You can customize the converter here if needed// For example, setting a custom TypeMapper or custom convertersreturn new MongoTemplate(mongoDbFactory, converter);}// Example of customizing the converter// @Bean// public MappingMongoConverter mappingMongoConverter(MongoDatabaseFactory factory, MongoMappingContext context) {//     DbRefResolver dbRefResolver = new DefaultDbRefResolver(factory);//     MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, context);//     // Remove _class field//     converter.setTypeMapper(new DefaultMongoTypeMapper(null));//     // Add custom converters//     // converter.setCustomConversions(...);//     return converter;// }
    }
    

通过这些机制,Spring Boot 提供了从简单属性配置到完全自定义 bean 定义的灵活性,以适应各种 MongoDB 连接需求。通常情况下,使用 application.propertiesapplication.yml 中的 spring.data.mongodb.uri 是最简单和推荐的方式。

http://www.cadmedia.cn/news/16291.html

相关文章:

  • 高新区建设局网站快速刷排名seo软件
  • 湖南网站备案要多少天软文范例大全
  • 鲜花网站建设方案朋友圈网络营销
  • 爬取1024上传到wordpress合肥关键词优化平台
  • 企业网站内容运营方案策划简述搜索引擎优化
  • 南京个人做网站佛山网站搜索排名
  • 做旅游网站用什么颜色爱站网挖掘关键词
  • 如何在百度建立自己的网站关键词优化步骤简短
  • 四川建设网站首页专业推广引流团队
  • 网站建设吉金手指排名11软件开发公司经营范围
  • 学校网站的建设如何让自己网站排名提高
  • 传媒公司网站建设cpa推广平台
  • 做音箱木工网站百度指数可以查询多长时间的
  • 网站空间怎么选seo顾问培训
  • 深圳做网站比较好的公司有哪些长沙seo工作室
  • 写作文网站国内免费推广产品的网站
  • 制作微信小程序费用热狗网站关键词优化
  • 雄安网站建设建站网站关键词优化
  • 互联网行业是什么seo策略工具
  • 商务网站的可行性分析包括东莞网络推广系统
  • bootstrap做购物网站流量精灵
  • ui设计就业方向有哪些爱站网seo查询
  • 全国互联网平台seo引擎搜索入口
  • wordpress媒体分类搜索引擎优化百度
  • 百度站内搜索百度关键词刷搜索量
  • 西安网站开发公司互联网推广员是做什么的
  • 福建住房城乡建设部网站网站推广的目的是什么
  • 美国ip代理服务器杭州seo教程
  • 常州微信网站建设好么现在阳性最新情况
  • 网站如何做压力测试浙江seo公司