如何解决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 配置 @配置 @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 有资格作为自动装配候选。依赖注释:{}
org.springframework.session.data.couchbase.config.annotation.web.http.CouchbaseHttpSessionConfiguration 中方法 couchbaseSessionRepository 的参数 0 需要一个类型为“com.couchbase.client.java.Bucket”的 bean被发现。 行动: 考虑在您的配置中定义一个“com.couchbase.client.java.Bucket”类型的 bean。
解决方法
在您的应用程序中创建一个类型为 com.couchbase.client.java.Bucket 的 bean spring boot 2.3.X及以上版本(spring-data-couchbase 4+),不再自动配置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 docs。
<dependency>
<groupId>io.github.couchbaselabs</groupId>
<artifactId>spring-session-data-couchbase</artifactId>
<version>1.1.1</version>
</dependency>
这应该可以解决应用程序启动问题。
[期待进一步编辑]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。