我与SpringBoot和JPA合作。我收到一个无法完成的@Autowired
错误。
这是我的主要课程:
package com;
@SpringBootApplication
@EnableJpaRepositories(basePackages="com.repository")
public class InitBatch implements CommandLineRunner {
@Autowired
private Batch batch;
@Autowired
private CareDao careDAO;
@Override
public void run(String... args) throws Exception {
careDAO.setMessageSource(messageSource());
batch.processFiles();
}
public static void main(String[] args) throws Exception {
SpringApplication.run(InitBatch.class, args).close();
System.out.println("Finish");
}
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("file:/config/instances");
messageSource.setCacheSeconds(100);
return messageSource;
}
}
这是我的班级失败的原因:
package com.logger.impl;
@Configuration
@ComponentScan({"com.repository"})
@Component
public class RequestLoggerImpl implements RequestLogger {
@Autowired
private RequestLogDao requestLogDao;
}
这是RequestLogDao
类:
package com.repository;
public interface RequestLogDao extends CrudRepository<RequestLog, Integer> {
}
这是错误消息:
错误创建bean的名称'请求LoggerImpl':注入自动生成的依赖失败;
无法自动关联字段:专用com。存储库。请求logdao.com。记录器。impl。RequestLoggerImpl。请求logdao;嵌套的异常是org。springframework。豆。工厂NoSuchBeanDefinitionException:找不到依赖项类型为[com.repository.RequestLogDao]的符合条件的bean:至少需要1个符合此依赖项autowire候选项条件的bean。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}
我就是不明白为什么它不能自动连线。我曾尝试在我的主类中添加@EnableJpaRepositories
,但没有成功。有什么建议吗?提前谢谢!
您是否有一个实现RequestLogDao
的具体类?我没看到。
您需要有一个(Java类),并且需要在应用程序上下文中提供它的实例。
两个都去掉
@Configuration
@ComponentScan({"com.repository"})
从RequestLoggerImpl
并从主类中删除@EnableJpaRepositories(basePackages=“com.repository”)
。并将主类移动到com
包的正下方
我假设,您添加了sping-boo-starter-data-jpa
依赖项
对于请求记录器,请先删除配置和组件扫描
package com.logger.impl;
@Component
public class RequestLoggerImpl implements RequestLogger {
@Autowired
private RequestLogDao requestLogDao;
}
既然您已经放置了@Configuration,我想您将需要一个config类,这样您就可以创建这样一个类:
@Configuration
@EnableJpaRepositories(basePackages = {"com.repository"}
public class MyConfiguration {
// possibly your Bean declarations here
// like dataSource, transactionManager etc.. related to your jpa repo
// as needed
}
注意你的基本包装在这里;因为它将用于:
package com.repository;
@Repository
public interface RequestLogDao extends CrudRepository<RequestLog, Integer> {
// ...
}
最后在你的主课上
@SpringBootApplication // scan base packages for autowiring as needed
public class InitBatch implements CommandLineRunner {
// ...
}
最后检查您的依赖关系。
我在Spring Boot上还是新手,我在mongoDB数据库中使用Spring-Boot添加了一个名为文章的文档,我想在该文章中添加注释。但是Spring-boot不能在我的应用程序中自动连接我的存储库。 下面是我的Repository类,它实现了ArticleRepositoryCustom接口,该接口包含一个OuterComment方法。 文章库 这是我的Springboot应用程序课程 当
我正在试验Spring和MongoDB。在我的项目中,我有一个存储库和一个有调度方法的服务。问题是,存储库没有自动运行,它总是为空。 Autowire在主应用程序类中正常工作(通过实现CommandLineRunner进行测试) 我错过什么了吗? 目录 机器应用。JAVA 工人JAVA LineDataRepository
我已经用@Autowired注释为相应的存储库定义了服务类 存储库接口定义为从JpaReepository扩展 应用程序自动编译服务类 运行时,我得到以下错误
问题内容: 我正在尝试在github仓库上连接詹金斯。 当我指定Repo URL jenkins时,返回以下错误消息: 无法连接到存储库:命令“ git ls-remote -h git@github.com:adolfosrs / jenkins-test.git HEAD”返回状态码128:stdout:stderr:主机密钥验证失败。致命:无法从远程存储库读取。请确保您具有正确的访问权限,并
我显然遗漏了一些东西。我正在制作一个简单的应用程序,其中包含并面临以下错误: 我的代码: 应用程序: pom.xml 控制器: 人事服务: 个人服务: PersonRepository(此存储库不能自动连接): 已经在网上搜索了。我什么都没找到。有什么想法吗?
我已经将应用程序和存储库接口的所有实体打包到一个jar中。存储库是用@Repository注释编写的: 我已经在我的Spring启动应用程序中包含了这个jar文件,并试图像这样从控制器自动连接接口: 我的主要应用程序类是这样编写的: 存储库没有自动连接。当我启动Spring boor应用程序时,我得到以下错误: 有人尝试过类似的架构吗?