springboot mongodb 整合,不启用mongo 报错问题处理

DAY DAY UP 2021年03月30日 300次浏览

启动类排除自动加载类

@SpringBootApplication(exclude = { MongoAutoConfiguration.class,
		MongoDataAutoConfiguration.class})

自定义配置加载类

package com.linewell.form.server.framework.config;

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

/**
 * @author zwenbo@linewell.com
 * @data 2021-03-29
 */
@ConditionalOnProperty(prefix = "ds.mongo",name = "enable",havingValue = "true")
@Configuration
@Import({MongoAutoConfiguration.class,
		MongoDataAutoConfiguration.class})
public class MyMongoConfig {

}

yml 配置

ds:
  mongo:
    enable: false

调用mongoTemplete 自动注入修改

@Autowired(required = false)
    private MongoTemplate mongoTemplate;

使用 mongodbTemplete

if(mongoEnable && uuid.length() == 24){
            formDetail1 = mongoTemplate.findById(uuid,FormDetail.class);
            if(formDetail1!=null){
                Query query = new Query();
                query.addCriteria(Criteria.where("id").is(formDetail.getId()));
                Update update = ValidationHelper.buildSetting4Mongo(formDetail,FormDetail.class);
                mongoTemplate.upsert(query,update,FormDetail.class);
                return formDetail;
            }else{
                formDetail.setCreateTime(new Date());
                formDetail.setTenancyId(affairServiceDefMapper.selectById(formDetail.getServiceId()).getTenancyId());
                mongoTemplate.insert(formDetail);
                return formDetail;
            }
        }

mongodb 查询

按_id 查询, 查询方式

db.form_detail.find({"_id": ObjectId("5f30a4b6fca37f755382a23a")})

获取 form_detail
getCollection

db.getCollection("form_detail").find({"_id": ObjectId("5f30a4b6fca37f755382a23a")})

多条件 id、 formId find({条件1,条件2})
db.getCollection("form_detail").find(
{
"_id": ObjectId("5f30a4b6fca37f755382a23a"),
"formId":"c9d491a966d243bb919f9e679da08eb4"
}
)