我犯了一个非常愚蠢的错误,但不知道如何解决。
我有一个简单的使用profiles的SpringBoot应用程序,它连接到MongoDb。
我的 pom.xml依赖关系:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
My StudentController.java
@RestController
@RequestMapping("/students")
public class StudentController {
@Autowired
private StudentService studentService;
@RequestMapping(method = RequestMethod.GET)
public Collection<Student> getAllStudents(){
return studentService.getAllStudents();
}
}
我的StudentService.java
@Service
public class StudentService {
@Autowired
private StudentDao studentDao;
public Collection<Student> getAllStudents(){
return this.studentDao.getAllStudents();
}
}
这是我的学生刀。java接口:
public interface StudentDao {
Collection<Student> getAllStudents();
}
我的MongoStudentDaoImpl.java:
@Repository
@Profile("test")
public class MongoStudentDaoImpl implements StudentDao {
@Autowired
private MongoStudentRepo repo;
@Override
public Collection<Student> getAllStudents() {
return repo.findAll();
}
}
我的MongoStudentRepo.java:
@Profile("test")
public interface MongoStudentRepo extends MongoRepository<Student, String> {
}
当我尝试使用“test”配置文件启动应用程序时,以下是我看到的错误:
在上下文初始化期间遇到异常 - 取消刷新尝试: org.springframework.beans.factory.不满意依赖性异常: 创建名称为“学生控制器”的 Bean 时出错: 通过字段“学生服务”表示的不满意的依赖关系;嵌套的例外是组织.Spring框架.豆.工厂.不满意依赖性异常:创建名称为“学生服务”的bean时出错:通过字段“学生道”表示的不满意的依赖关系;嵌套的例外是组织.springframework.beans.factory.不满意的依赖性异常:创建名称为“mongoStudentDao”的bean时出错:通过字段“repo”表示的不满意的依赖关系;嵌套的例外是组织.Spring框架.豆子.工厂.NoSuchBean定义异常:没有“MongoStudentRepo”类型的合格豆可用:预计至少有1个豆子有资格作为自动布线候选。依赖关系注释: {@org.Spring框架.豆子.工厂.注释.自动连线(必需=真)}
我在这里错过了什么?我需要在MongoStudentRepo.java
中添加注释吗?
提前感谢。
我很抱歉,我错过了我添加到主要的排除标准。java类使另一个概要文件工作@克丽莉丝谢谢你的指点。
这主要是有问题的。java文件
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class, MongoRepositoriesAutoConfiguration.class})
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
修复了主.java文件
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class, MongoRepositoriesAutoConfiguration.class})
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class, args);
}
}
您的接口类不需要注释,因为 Spring 数据存储库接口由 Spring Data 专门处理。
最有可能的情况是您的存储库类没有被Spring Data识别(您没有指定Spring Boot版本或包名称),在这种情况下,您可能需要@EnableMongoRepositories
在@Configuration
类上(您的Spring Boot启动器类也是其中之一)。
堆栈跟踪显示Spring无法在您的MongoStudentDaoImpl.javaclass.From堆栈跟踪中自动装配一个beanMongoStustRepo
:
Unsatisfied dependency expressed through field 'repo'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'MongoStudentRepo' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations:
Spring抛出此异常意味着蒙哥学生Repo.class
的豆子没有被正确创建。
可能的解决方案:
@EnableJpaRepositories
来启用默认存储库bean的扫描和创建。有关更多信息,请阅读此处但是,如果您使用基于xml的配置,则对于基于xml的设置,请使用:
<repositories base-package="com.acme.repository" />
<repositories base-package="com.acme.repository" repository-impl-postfix="MyPostfix" />
或者使用@Configuration注释:
@Configuration
@EnableJpaRepositories("com.acme.repositories")
class ApplicationConfiguration {
@Bean
EntityManagerFactory entityManagerFactory() {
// …
}
}
当您使用spring默认实现时,您只能为您的‘test’概要文件加载这个配置。
最佳阅读:https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repositories.custom-实施
我在Spring是新来的。我正在使用Spring Boot创建控制台应用程序。应用程序工作正常,但当我尝试测试存储库时,我得到一个错误 < code >原因:org . spring framework . beans . factory . unsatisfieddependencyexception:创建名为“universitymanagerspringbootsapplication”的b
在运行该项目时,我出现了以下错误
问题内容: 我发现类似的问题解释了许多Web门户。但是我想这是独特的情况。我在Spring MVC应用程序中遇到错误。 代码如下。我认为已经复制了足够的代码。请帮助我了解缺少的内容以及如何解决此问题。任何帮助将是巨大的…!代码:Appitiializer: SQLDEVConfig: SpringAPpContInit: AbstrackJpaConfig: 控制器: CategoryReposi
我知道这个问题已经被问了很多次了,但我真的很难找到正确的解决方法。我已经尝试了这么多的东西,看到这些问题,但似乎没有一个符合我的情况。 完整日志错误如下: 以下是我当前的实现: SpringBootApplication: DashboardService接口: 类服务:
我有一个属性XML文件,如下所示: 我该怎么解决这个?