具有基于注释的配置的Spring Mongo DB

时间:2016-11-28 04:11:52

标签: java spring mongodb intellij-idea spring-boot

我正在学习Spring Boot,我正在尝试创建一个非常简单的应用程序,它使用动态查询从Mongo DB中获取数据。我使用Intellij作为我的IDE。

FILE: application.properties (在资源文件夹内)

@Repository
public interface MyRepo extends PagingAndSortingRepository<Person, String> {
    public List<Person> findAllByName(String name);
}

文件: person.java

@Configuration
@EnableMongoRepositories(basePackages = {"mongo.customQueries"})
public class Config {

}

文件: MyRepo.java

public class Main {
    @Autowired
    public static MyRepo myRepo;
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
        MyRepo myRepo = context.getBean(MyRepo.class);
        System.out.println(myRepo.findAllByName("Avishek"));

    }
}

文件: Config.java

Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [mongo.customQueries.MyRepo] is defined

文件: Main.java

$("element-root").bind("DOMSubtreeModified", "CustomHandler");

当我运行项目时,出现错误

{{1}}

我在这里失踪的是什么?为什么我的MyRepo bean没有被创建,因为net中的大多数示例都是这样做的。

2 个答案:

答案 0 :(得分:0)

问题是您要在Main类中注释MyRepo,请将其删除,如下所示:

public class Main {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
        MyRepo myRepo = context.getBean(MyRepo.class);
        System.out.println(myRepo.findAllByName("Avishek"));

    }
}

答案 1 :(得分:0)

  

如果有人能给我一个简单的例子来运行动态查询   在Spring启动时使用mongo。一些类似于上面的例子。要么   我怎样才能使上面的例子正确无误。

您可以看到工作示例here。并找到解释here