springboot2集成cas 单点登录_java properties

springboot2集成cas 单点登录_java propertiesCouchbase 虽然是MongoDB最有潜力的竞争对手,但是其在数据库方面的开源程度还远远不够,很多高级特性都没有开放出来。目前虽然被SpringBoot加持有了一些光环,但是其文档和代码注释方…

SpringBoot2集成Couchbase

Couchbase 虽然是MongoDB最有潜力的竞争对手,但是其在数据库方面的开源程度还远远不够,很多高级特性都没有开放出来。目前虽然被SpringBoot加持有了一些光环,但是其文档和代码注释方面做的仍然逊色不少,这与其开源程度有着很大的关系。开源这把双刃剑,在这里其利弊表现得真是淋漓尽致。

 

废话少说,接下来是SpringBoot2集成Couchbase的详细步骤,请仔细阅读,以免不小心入坑。

目前,本项目使用的是SpringBoot 2.3.x版本, Spring Data Couchbase 4.0版本,关于该版本的更新可以参考这里:
https://my.oschina.net/crosschen/blog/4342796
 
1) 加载依赖包
 
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-couchbase</artifactId>
</dependency>

代码100分

 

2) 配置连接信息 application.yml
 
代码100分
spring:
  couchbase:
    bucket-name: gate_way
    bootstrap-hosts: 172.17.3.111
    username: Administrator
    password: zaq1xsw2

 

3) 动态加载数据库。 SpringBoot2并不会在配置Couchbase连接信息后自动加载该配置,目前需要通过配置类进行加载。CouchConfig.java
 
@Configuration
@EnableCouchbaseRepositories(basePackages = {"com.favccxx.gateway.repository"}, considerNestedRepositories = true)
public class CouchConfig extends AbstractCouchbaseConfiguration {

    @Value("${spring.couchbase.bootstrap-hosts}")
    private String host;

    @Value("${spring.couchbase.username}")
    private String userName;

    @Value("${spring.couchbase.password}")
    private String password;

    @Value("${spring.couchbase.bucket-name}")
    private String bucketName;


    @Override
    public String getConnectionString() {
        return host;
    }

    @Override
    public String getUserName() {
        return userName;
    }

    @Override
    public String getPassword() {
        return password;
    }

    @Override
    public String getBucketName() {
        return bucketName;
    }

    @Override
    protected boolean autoIndexCreation() {
        return true;
    }

    @Override
    public String typeKey() {
        return MappingCouchbaseConverter.TYPEKEY_DEFAULT;
    }
}

 

4) 自定义Repository。
 
注意: Couchbase在序列化嵌套对象时,会在数据库中添加content的属性,因此在查询对应的字段时需要使用claxx.content 返回具体值。
 
代码100分
@Repository
public interface MessageRouteRepo extends CouchbaseRepository<MessageRoute, String> {


    List<MessageRoute> findByRouteName(String routeName);


    @Query("SELECT META().id AS __id, META().cas AS  __cas, fromRoute.content as fromRoute, routeName, status FROM gate_way")
    public List<MessageRoute> findByRoutes(String routeName);


}

 

5) 集成完成。
 
目前,Couchbase方面的文档在网上并不多,而且很多文档都已经过时了。如果读者需要使用Couchbase作为数据库,建议参考官方的资料,以免不必要的入坑。
 
 
参考资料: 
 
 
 
 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7257.html

(0)
上一篇 2023-03-24
下一篇 2023-03-24

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注