首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将"_class“从MongoDB - Springboot中删除

将"_class“从MongoDB - Springboot中删除
EN

Stack Overflow用户
提问于 2021-07-01 07:46:27
回答 1查看 1.1K关注 0票数 0

我是SpringBoot的新手,我正在尝试将我的SpringBoot应用程序与MongoDB连接起来。GET请求完全正常工作,但是POST请求在我不想要的数据中添加了一个"_class“字段。我做了一些搜索,发现我必须添加一个@Configuration类来解决这个问题,但是当我添加@Configuration类时,我得到了以下错误:

代码语言:javascript
运行
复制
Field mongoDbFactory in com.example.demo.configuration.MongoConfig required a bean of type 'org.springframework.data.mongodb.MongoDbFactory' that could not be found.

我的加密类代码如下:

MongoConfig.java :-

代码语言:javascript
运行
复制
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDbFactory;
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;

@Configuration
public class MongoConfig {
    @Autowired
    private MongoDbFactory mongoDbFactory;

    @Autowired
    private MongoMappingContext mongoMappingContext;

    @Bean
    public MappingMongoConverter mappingMongoConverter() {

        DbRefResolver dbRefResolver = new DefaultDbRefResolver(mongoDbFactory);
        MappingMongoConverter converter = new MappingMongoConverter(dbRefResolver, 
mongoMappingContext);
        converter.setTypeMapper(new DefaultMongoTypeMapper(null));

        return converter;
    }
}

Controller.java :-

代码语言:javascript
运行
复制
import com.example.demo.model.Todo;
import com.example.demo.services.TodoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class Controller {

    @Autowired
    private TodoService todoService;

    @GetMapping("/")
    public List<Todo> getTodos() {
        return todoService.getTodos();
    }

    @PostMapping("/")
    public Todo addTodo(@RequestBody Todo todo) {
        return  todoService.addTodo(todo);
    }

}

TodoService.java :-

代码语言:javascript
运行
复制
import com.example.demo.model.Todo;

import java.util.List;

public interface TodoService {

    public List<Todo> getTodos();

    public Todo addTodo(Todo todo);

}

TodoServiceImplementation.java :-

代码语言:javascript
运行
复制
import com.example.demo.model.Todo;
import com.example.demo.repository.TodoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class TodoServiceImplementation implements TodoService{

 @Autowired
 private TodoRepository todoRepository;

 @Override
 public List<Todo> getTodos() {
     return todoRepository.findAll();
 }

 @Override
 public Todo addTodo(Todo todo) {
     return todoRepository.save(todo);
 }

 }
EN

Stack Overflow用户

发布于 2022-01-09 08:18:59

代码语言:javascript
运行
复制
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDatabaseFactory;
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;

@Configuration
public class MongoConfiguration {

    @Bean
    public MappingMongoConverter mappingMongoConverter(MongoDatabaseFactory factory, MongoMappingContext context,
            BeanFactory beanFactory) {
        DbRefResolver dbRefResolver = new DefaultDbRefResolver(factory);
        MappingMongoConverter mappingConverter = new MappingMongoConverter(dbRefResolver, context);
        mappingConverter.setTypeMapper(new DefaultMongoTypeMapper(null));
        return mappingConverter;
    }
}

尝尝这个

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68206238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档