1
データを反応的に保存するためにCassandraを使用する予定です。これを行うには、私は次のインターフェイスを書いた:Spring Boot:ReactiveCrudRepositoryがBeanによって実装されていません。
@Repository
public interface ContributorStatRepository extends ReactiveCrudRepository<ContributorStat, Long> {
Flux<ContributorStat> findByAkonId(String akonId);
}
上記の例外がスローされます。
com.example.sample.controller.ContributorStatControllerTest > shouldReturnBadRequestWithBlankContributorStat FAILED
java.lang.IllegalStateException
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException
ContributorStatRepository
ためappropiate Beanが作成されていない理由を知っていますか?
dependencies {
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('javax.xml.bind:jaxb-api:2.3.0')
compile('org.springframework.boot:spring-boot-starter-webflux')
compile('org.springframework.boot:spring-boot-starter-data-cassandra-reactive')
testCompile('org.springframework.boot:spring-boot-starter-test')
testCompile('io.projectreactor:reactor-test')
}
更新:
私は春ブーツ2.0.0.M7及びこれらの依存関係を使用しています 実行テスト:あなたが注釈付き@WebMvcTest
を使用しているようだ
@Test
public void shouldReturnBadRequestWithBlankContributorStat() throws Exception {
requestPayload = mapper.writeValueAsString(new ContributorStatDTO());
this.mockMvc.perform(post(CONTRIBUTOR_STATS_ROUTE)
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.content(requestPayload)).andDo(print())
.andExpect(status().isBadRequest());
}
詳細をお知らせください。あなたのリポジトリインタフェースは、(拡張インタフェースの2倍を宣言して)奇妙に見えますが、実行中のテストクラスは表示されません。また、なぜspring-data-jpaをミックスに追加するのですか? –
@BrianClozelああ私はコメント行を削除するのを忘れていました。ただそれを更新しました。観察してくれてありがとう。リアクティブではない別のリポジトリを作成するためにspring-data-jpaが含まれています。テストを含めましたが、実際にはすべてのテストが失敗します。なぜなら、そのリポジトリにBeanが見つからないからです。 – Jovanny
@ Jovanny '@ Enable * Repositories'をどこに追加しましたか?例えば。 [この例のように](https://spring.io/blog/2016/11/28/going-reactive-with-spring-data#reactive-configuration)? – Brian