java - CouchbaseHttpSessionConfiguration 中的 couchbaseSessionRepository 需要一个 'com.couchbase.client.java.Bucket' 类型的 bean
问题描述
我正在尝试在其中一个应用程序中使用 @EnableCouchbaseHttpSession 将会话存储在 couchBase 中。
@SpringBootApplication
@EnableCouchbaseHttpSession(keepStringAsLiteral = true)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
CouchBase 配置 @Configuration @EnableCouchbaseRepositories @Getter 公共类 CouchbaseConfigurations 扩展 AbstractCouchbaseConfiguration {
@Value("${couchbase.connectionString}")
private String connectionString;
@Value("${couchbase.username}")
private String userName;
@Value("${couchbase.password}")
private String password;
@Value("${couchbase.bucket}")
private String bucketName;
}
使用的依赖
<dependency>
<groupId>io.github.couchbaselabs</groupId>
<artifactId>spring-session-data-couchbase</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-couchbase</artifactId>
</dependency>
启动应用程序后,应用程序未启动并出现错误
错误日志
启动 Tomcat 上下文时出错。例外:org.springframework.beans.factory.UnsatisfiedDependencyException。消息:在类路径资源 [org/springframework/boot/autoconfigure/session/SessionRepositoryFilterConfiguration.class] 中定义名称为 'sessionRepositoryFilterRegistration' 的 bean 创建错误:通过方法 'sessionRepositoryFilterRegistration' 参数 1 表达的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:创建 org.springframework.session.data.couchbase.config.annotation.web.http.CouchbaseHttpSessionConfiguration 中定义的名称为“springSessionRepositoryFilter”的 bean 时出错:通过方法“springSessionRepositoryFilter”表示不满足的依赖关系' 参数 0; 嵌套异常是 org.springframework.beans.factory。UnsatisfiedDependencyException:创建 org.springframework.session.data.couchbase.config.annotation.web.http.CouchbaseHttpSessionConfiguration 中定义的名称为“couchbaseSessionRepository”的 bean 时出错:通过方法“couchbaseSessionRepository”参数 0 表示的不满足依赖关系;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“com.couchbase.client.java.Bucket”类型的合格 bean 可用:预计至少有 1 个有资格作为自动装配候选者的 bean。依赖注释:{} 参数0;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“com.couchbase.client.java.Bucket”类型的合格 bean 可用:预计至少有 1 个有资格作为自动装配候选者的 bean。依赖注释:{} 参数0;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“com.couchbase.client.java.Bucket”类型的合格 bean 可用:预计至少有 1 个有资格作为自动装配候选者的 bean。依赖注释:{}
org.springframework.session.data.couchbase.config.annotation.web.http.CouchbaseHttpSessionConfiguration 中方法 couchbaseSessionRepository 的参数 0 需要一个找不到的 'com.couchbase.client.java.Bucket' 类型的 bean。行动:考虑在你的配置中定义一个“com.couchbase.client.java.Bucket”类型的bean。
解决方案
从 Spring Boot 版本 2.3.X 及更高版本(spring-data-couchbase 4+)开始,在您的应用程序中创建 com.couchbase.client.java.Bucket 类型的 bean,Bucket bean 不再自动配置。
@Configuration
public class CouchbaseBucketConfig {
private final CouchbaseClientFactory couchbaseClientFactory;
public CouchbaseBucketConfig(CouchbaseClientFactory couchbaseClientFactory) {
this.couchbaseClientFactory = couchbaseClientFactory;
}
@Bean
public Bucket bucket(){
return couchbaseClientFactory.getBucket();
}
}
在您的 POM.xml 中添加“spring-session-data-couchbase”依赖项。请参阅 Github、Couchbase 文档。
<dependency>
<groupId>io.github.couchbaselabs</groupId>
<artifactId>spring-session-data-couchbase</artifactId>
<version>1.1.1</version>
</dependency>
这应该可以解决应用程序启动问题。
[期待进一步的编辑]
推荐阅读
- javascript - 将 setTimeout 与参数一起使用而不是内联函数定义的可能警告?
- html - 在没有ajax调用的asp.net mvc控制器中获取html表
- protractor - 在量角器中下载图像 URL
- android - 如何减少 if else if 梯形代码长度,它根据 if 条件内的文本显示 textviews
- git - Git忽略不应该的文件
- neo4j - 如何在 Cypher 查询中包含特定的关系计数
- asp.net - Excel 工作表中未跳过合并的单元格
- python - 为什么在 python 脚本完成之前不执行打印作业?
- c# - 使用 C# WPF 将枚举绑定到 ViewModel
- wordpress - 服务不可用 服务器当前正在进行维护。站长:请联系支持。错误 503