我想为从Couchbase 6.X到7.X的迁移做准备。为此,我想为我的集群配置范围和集合。在spring-data-couchbase的文档中,我看到我只需要在我的存储库中添加@Scope和@Collection。
package xxx.couchbase;
import xxx.MyDocument;
import org.springframework.data.couchbase.repository.Collection;
import org.springframework.data.couchbase.repository.CouchbaseRepository;
import org.springframework.data.couchbase.repository.Scope;
import org.springframework.stereotype.Repository;
@Repository
@Scope("_default")
@Collection("_default")
public interface MyDocumentRepository extends CouchbaseRepository<MyDocument, String> {
}
我想做的是:
package xxx.couchbase;
import xxx.MyDocument;
import org.springframework.data.couchbase.repository.Collection;
import org.springframework.data.couchbase.repository.CouchbaseRepository;
import org.springframework.data.couchbase.repository.Scope;
import org.springframework.stereotype.Repository;
@Repository
@Scope("${couchbase.scope}")
@Collection("${couchbase.collection}")
public interface MyDocumentRepository extends CouchbaseRepository<MyDocument, String> {
}
application.properties:
couchbase.scope=_default
couchbase.collection=_default
后一种配置不起作用,因为注解中的字符串值没有被解析,而是照字面理解的。我使用的是Sping Boot 2.7.3版,spring-boot-starter-data-couchbase 2.7.3版。
是否有其他方法将值从www.example.com传递application.properties到注解?
1条答案
按热度按时间6ju8rftf1#
我看不出spring Boot 有什么方法可以用application.properties中的值填充注解的参数。
但是您可以从www.example.com中的值填充变量application.properties,如下所示:
然后定义存储库以扩展DynamicProxyable
然后获取一个存储库对象,将该范围和集合作为默认值:
参见https://docs.spring.io/spring-data/couchbase/docs/4.4.6/reference/html/#couchbase.collections