2017-08-11 15 views
0

私はspringとMongoDBを試しています。 私のプロジェクトには、スケジュールされた方法を持つリポジトリとサービスがあります。 問題は、リポジトリがautowiredにならず、常にnullです。スプリングブートmongoDB autowired nullリポジトリ

Autowireは、メインアプリケーションクラスで正しく動作
  • (CommandLineRunnerを実装することによってそれをテスト)
  • サービスがcomponentScanによって発見された(コンストラクタが呼ばれた)

私はsomethig足りませんか?

ディレクトリ

enter image description here

MachineApplication.java

@SpringBootApplication 
@EnableScheduling 
public class MachineApplication { 
    public static void main(String[] args) { 
     SpringApplication.run(MachineApplication.class, args); 
    } 
} 

Worker.java

LineDataRepository

@Repository 
public interface LineDataRepository extends MongoRepository<LineData, String> { 
} 

答えて

1

それはMongoのリポジトリを認識させるMachineApplicationに@EnableMongoRepositoriesを追加します。

には、接続があなたのMongoDBに行われることはありませんこのBeanなしで、私はあなたがmongoDbFactorymongoTemplate Beanを作成していないと思いますhere

0

を参照してください。以下は設定です:

@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()); 
    } 
} 
関連する問題