Spring boot mongoDB自动连线空存储库
我正在试验spring和MongoDB。 在我的项目中,我有一个存储库和一个具有预定方法的服务。 问题是,存储库没有自动连接,它总是空的Spring boot mongoDB自动连线空存储库,spring,mongodb,spring-boot,autowired,Spring,Mongodb,Spring Boot,Autowired,我正在试验spring和MongoDB。 在我的项目中,我有一个存储库和一个具有预定方法的服务。 问题是,存储库没有自动连接,它总是空的 Autowire在主应用程序类中正常工作(通过实现CommandLineRunner对其进行了测试) componentScan找到服务(调用构造函数) 我错过什么了吗 目录 @Repository public interface LineDataRepository extends MongoRepository<LineData, String
- Autowire在主应用程序类中正常工作(通过实现CommandLineRunner对其进行了测试)
- componentScan找到服务(调用构造函数)
@Repository
public interface LineDataRepository extends MongoRepository<LineData, String> {
}
MachineApplication.java
@SpringBootApplication
@EnableScheduling
public class MachineApplication {
public static void main(String[] args) {
SpringApplication.run(MachineApplication.class, args);
}
}
@Service
public class Worker {
@Autowired
private LineDataRepository lineDataRepository;
@Autowired
private LineRepository lineRepository;
...
public Worker() {
System.out.println("--------------------------------");
System.out.println(lineDataRepository);//null
System.out.println(lineRepository);//null
}
}
Worker.java
@SpringBootApplication
@EnableScheduling
public class MachineApplication {
public static void main(String[] args) {
SpringApplication.run(MachineApplication.class, args);
}
}
@Service
public class Worker {
@Autowired
private LineDataRepository lineDataRepository;
@Autowired
private LineRepository lineRepository;
...
public Worker() {
System.out.println("--------------------------------");
System.out.println(lineDataRepository);//null
System.out.println(lineRepository);//null
}
}
LineDataRepository
@Repository
public interface LineDataRepository extends MongoRepository<LineData, String> {
}
@存储库
公共接口LineDataRepository扩展了MongoRepository{
}
将@EnableMongoRepositories
添加到MachineApplication,让它检测Mongo存储库
请参阅我认为您还没有创建
mongoDbFactory
和mongoTemplate
bean,没有这个bean,就无法连接到您的mongoDB。以下是配置:
@Configuration
public class MongoConfiguration {
@SuppressWarnings("deprecation")
@Bean
public MongoDbFactory mongoDbFactory() throws Exception {
UserCredentials userCredentials = new UserCredentials("admin", "password");
return new SimpleMongoDbFactory(new Mongo(), "myspring", userCredentials);
}
@Bean
public MongoTemplate mongoTemplate() throws Exception {
return new MongoTemplate(mongoDbFactory());
}
}