代码拉取完成,页面将自动刷新
同步操作将从 OpenHarmony/graphic_graphic_2d 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package com.huawei.config.datasource;
import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.MongoCredential;
import com.mongodb.ReadPreference;
import com.mongodb.client.MongoClient;
import com.mongodb.client.internal.MongoClientImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.convert.CustomConversions;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory;
import org.springframework.data.mongodb.core.convert.DbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
/**
* ci_info mongoDB配置类 读写均可。
*
* @since 2022-11-09
*/
@Configuration
@Slf4j
public class CiWriteMongoConfig {
@Value(value = "${spring.data.mongodb.write-username}")
private String userName;
@Value(value = "${spring.data.mongodb.write-uri}")
private String address;
@Value(value = "${spring.data.mongodb.write-password}")
private String password;
@Value(value = "${spring.data.mongodb.ci-info-name}")
private String dbName;
@Autowired
@Qualifier("ciWriteMongoClient")
private MongoClient mongoClient;
private MongoClientSettings getMongoClientOptions(MongoCredential credential) {
MongoClientSettings.Builder builder = MongoClientSettings.builder();
builder.applyConnectionString(new ConnectionString("mongodb://" + address));
builder.credential(credential);
return builder.readPreference(ReadPreference.primary()).build();
}
/**
* mongoDB客户端
*
* @since 2022-11-09
*/
@Bean("ciWriteMongoClient")
public MongoClient mongoClient() {
//使用数据库名、用户名密码登录
MongoCredential credential =
MongoCredential.createCredential(userName, dbName, password.toCharArray());
return new MongoClientImpl(getMongoClientOptions(credential), null);
}
/**
* 注册mongodb操作类
*
* @param beanFactory 数据库连接工厂
* @param context context
* @return MongoTemplate
* @since 2022-11-09
*/
@Bean("ciWriteMongoTemplate")
public MongoTemplate mongoTemplate(MongoMappingContext context, BeanFactory beanFactory) {
SimpleMongoClientDatabaseFactory simpleMongoClientDatabaseFactory = new SimpleMongoClientDatabaseFactory(mongoClient, dbName);
DbRefResolver dbRefResolver = new DefaultDbRefResolver(simpleMongoClientDatabaseFactory);
MappingMongoConverter mappingConverter = new MappingMongoConverter(dbRefResolver, context);
try {
mappingConverter.setCustomConversions(beanFactory.getBean(CustomConversions.class));
} catch (NoSuchBeanDefinitionException ignore) {
log.info(ignore.getMessage());
}
mappingConverter.setTypeMapper(new DefaultMongoTypeMapper(null));
return new MongoTemplate(simpleMongoClientDatabaseFactory, mappingConverter);
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。