2016-11-28 207 views
0

我正在學習Spring Boot,我試圖製作一個非常簡單的應用程序,它使用動態查詢從MongoDB中獲取數據。我使用Intellij作爲我的IDE。Spring Mongo DB基於註釋的配置

FILE:application.properties(資源文件夾中)

spring.mongo.host=127.0.0.1 
spring.mongo.port=27017 
spring.mongo.databaseName=spring 

FILE:person.java

@Document (collection = "person") 
public class Person { 
    @Id 
    String id; 
    int age; 
    String name; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public int getAge() { 
     return age; 
    } 

    public void setAge(int age) { 
     this.age = age; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

FILE:MyRepo.java

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

FILE:Config.java

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

} 

FILE:Main.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")); 

    } 
} 

當我運行該項目,我得到一個錯誤

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

這是什麼我在這裏失蹤?爲什麼我的MyRepo bean沒有創建,因爲網上的大多數示例都這樣做。

+0

刪除@Autowired註釋。當您使用上下文來實例化MyRepo bean時不需要。 – Veeram

+0

我刪除了,仍然無法使用。 – Juvenik

+0

您無法自動裝載靜態字段。 – chrylis

回答

0

的問題是要註釋的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")); 

    } 
} 
0

如果有人可以給我一個簡單的例子,在春季啓動運行動態查詢 與芒果。一些與上述相似的例子。或者 我怎樣才能使上面的例子正確。

您可以看到工作示例here。並找到解釋here