我正在学习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没有创建,因为网上的大多数示例都这样做。
删除@Autowired注释。当您使用上下文来实例化MyRepo bean时不需要。 – Veeram
我删除了,仍然无法使用。 – Juvenik
您无法自动装载静态字段。 – chrylis