package com.iplatform.chat.config; import com.iplatform.chat.ChatService; import com.iplatform.chat.support.MongoChatService; import com.iplatform.core.PlatformConfiguration; import com.walker.jdbc.mongo.MongoProperty; import com.walker.jdbc.mongo.MongoService; import com.walker.jdbc.mongo.MongoTemplateFactory; import org.springframework.context.annotation.Bean; import org.springframework.data.mongodb.core.MongoTemplate; /** * 注意:这里要禁用Mongo自动配置启动(第四行),因为我们做了自定义配置。 * @author 时克英 * @date 2023-07-07 */ //@Configuration //@ConditionalOnProperty(prefix = "iplatform.chat", name = "mongo-enabled", havingValue = "true", matchIfMissing = false) //@ConditionalOnClass({MongoService.class}) //@EnableAutoConfiguration(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class}) @Deprecated public class MongoChatConfig extends PlatformConfiguration { @Bean public ChatService chatService(MongoChatProperties mongoChatProperties, MongoTemplateFactory mongoTemplateFactory){ logger.info(mongoChatProperties.toString()); MongoService mongoService = this.acquireMongoService(mongoTemplateFactory, mongoChatProperties); MongoChatService chatService = new MongoChatService(); chatService.setMongoService(mongoService); return chatService; } @Bean public MongoTemplateFactory mongoTemplateFactory(){ return new MongoTemplateFactory(); } @Bean public MongoChatProperties mongoChatProperties(){ return new MongoChatProperties(); } private MongoService acquireMongoService(MongoTemplateFactory mongoTemplateFactory, MongoChatProperties properties){ MongoProperty property = new MongoProperty(); property.setIp(properties.getIp()); property.setPort(properties.getPort()); property.setDatabase(properties.getDatabase()); property.setUserName(properties.getUserName()); property.setPassword(properties.getPassword()); property.setMaxSize(properties.getMaxSize()); property.setMinSize(properties.getMinSize()); property.setMaxIdleTimeSeconds(properties.getMaxIdleTimeSeconds()); property.setMaxWaitTimeSeconds(properties.getMaxWaitTimeSeconds()); MongoTemplate mongoTemplate = mongoTemplateFactory.createTemplate(property); MongoService mongoService = new MongoService(); mongoService.setMongoTemplate(mongoTemplate); return mongoService; } }