Для поля authorMongoRepository требуется bean-компонент типа, который не может быть найден

avatar
Büşra Ceylan
8 августа 2021 в 16:23
60
0
0

Описание:

Полю authorMongoRepository в com.example.SpringReturnObject.Mongo.Controller.AuthorController требуется bean-компонент типа 'com.example.SpringReturnObject.Rest.Controller.AuthorMongoRepository', который не может быть найден.

Точка впрыска имеет следующие аннотации: - @org.springframework.beans.factory.annotation.Autowired(required=true)

Действие:

Рассмотрите возможность определения bean-компонента типа 'com.example.SpringReturnObject.Rest.Controller.AuthorMongoRepository' в вашей конфигурации. класс AuthorMongoRepository пакет com.example.SpringReturnObject.Rest.Controller;

import com.example.SpringReturnObject.Mongo.Model.Author;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface AuthorMongoRepository extends MongoRepository<Author, String> {

     List<Author> findByUsernameContainingIgnoreCase(String username);
     List<Author> findByArticles_titleContainingIgnoreCase(String title);
}

AddnewDocument.java пакет com.example.SpringReturnObject.Mongo.Implementation;

import com.example.SpringReturnObject.Mongo.Model.Article;
import com.example.SpringReturnObject.Mongo.Model.Author;
import com.example.SpringReturnObject.Rest.Controller.AuthorMongoRepository;
import com.example.SpringReturnObject.Rest.Controller.MongoController;
import org.springframework.beans.factory.annotation.Autowired;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class AddNewDoc implements MongoController {

    @Autowired
    AuthorMongoRepository authorMongoRepository;
    @Override
    public List<Author> getAllList() {
        SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
        authorMongoRepository.deleteAll();

        final Article article1;
        try {
            article1 = new Article("Spring Boot - MongoDB + Data + Web"
                    , "MongoDB", df.parse("10/5/2018"));
            final Article article2 = new Article("Spring Boot - MongoDB + Data + Web"
                    , "H2 Console", df.parse("2/3/2016"));
            final Article article3 = new Article("Spring Cloud - Zuul + Eureka + Rest Web", "Load Balancer with Zuul", df.parse("5/1/2018"));
            final Article article4 = new Article("Spring Cloud - Feign"
                    , "Feign Client + Eureka + Rest", df.parse("5/6/2018"));

            Author author1 = new Author("Melardev", Arrays.asList(article1, article2));
            Author author2 = new Author("Momo", Arrays.asList(article3, article4));

            authorMongoRepository.save(author1);
            authorMongoRepository.save(author2);
            
        }
        catch (ParseException e) {
            e.printStackTrace();

        }
        return null;
    }
}

MongoControllerInterface пакет com.example.SpringReturnObject.Rest.Controller;

import com.example.SpringReturnObject.Mongo.Model.Author;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public interface MongoController {

    @GetMapping("/author")
    List<Author> getAllList();
}

ApplicationStartup.java пакет com.example.SpringReturnObject;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;

@EnableMongoRepositories(basePackages = "com.example.SpringReturnObject.Rest.Controller.AuthorMongoRepository")
@EnableAutoConfiguration
@Configuration
@ComponentScan({"com.example.*"})
@EntityScan({"com.example.*"})
@SpringBootApplication
public class SpringReturnObjectApplication  {

    public static void main(String[] args) {
        SpringApplication.run(SpringReturnObjectApplication.class, args);
    }

}
Источник
Ori Dar
8 августа 2021 в 16:47
0

Здесь должен быть базовый пакет репозитория: @EnableMongoRepositories(basePackages = "com.example.SpringReturnObject.Rest.Controller"), а не @EnableMongoRepositories(basePackages = "com.example.SpringReturnObject.Rest.Controller.AuthorMongoRepository"), который является самим классом репозитория.

Büşra Ceylan
8 августа 2021 в 16:54
0

спасибо, но не решил

Ответы (0)