我跟随这个链接用spring数据实现r2dbc。该项目有巨大的pom,因为它演示了其他功能。所以我试着只依赖spring引导和r2dbc与h2。
我的pom是:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--For testing-->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.199</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- junit 5 -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<!--For reactive-->
<dependency>
<groupId>io.r2dbc</groupId>
<artifactId>r2dbc-h2</artifactId>
<version>0.8.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-r2dbc</artifactId>
<version>1.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-core</artifactId>
</dependency>
<!---->
<dependencies>
我将存储库定义为:
public interface ReactiveFeatureRepository extends ReactiveCrudRepository<Feature, UUID> {
}
要素是实体类。
我在src/test/resources的application.properties中配置了h2:
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
spring.datasource.username=sa
spring.datasource.password=sa
试验中:
@ExtendWith(SpringExtension.class)
@SpringBootTest
public class ReactiveFeatureRepositoryTest {
@Autowired
ReactiveFeatureRepository rfr;
@Autowired
DatabaseClient client;
@Autowired
H2ConnectionFactory factory;
...
...
}
但是当我尝试运行测试时,我得到了大量的日志,其中列出了“积极匹配”和“消极匹配”,最后:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name
'x.y.z.ReactiveFeatureRepositoryTest': Unsatisfied dependency expressed
through field 'rfr'; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type
'x.y.z.ReactiveFeatureRepository' available: expected at least 1 bean which
qualifies as autowire candidate. Dependency annotations:
{@org.springframework.beans.factory.annotation.Autowired(required=true)}
at
与示例项目相比,我缺少什么?
1条答案
按热度按时间quhf5bfb1#
对于spring数据r2dbc,db connection config前缀是spring.r2dbc。
看看我的例子
如果类路径中有h2 r2dbc驱动程序,则可以忽略h2/r2dbc配置。
这里有一个测试h2存储库的示例。
有关其他数据库支持和使用testcontainers编写测试代码的信息,请查看此存储库中的其他r2dbc示例。
最新的r2dbc有一个新的存储库,它演示了即将到来的springboot2.4/springdatar2dbc/spring5.3r2dbc的特性。