栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

RavenDB起步--客户端API(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

RavenDB起步--客户端API(一)

上一小节我们演示了一个简单的实例,从本篇文章开始我将通过两篇文章带领大家学习一下 RavenDB 常用客户端 API。

document Store

document Store 是客户端 API 的主要入口点,它包括了包含所有客户端配置,包括序列化配置、故障转移行为、缓存选项等内容。一般来说每个单例应用程序都会拥有一个document Store实例,因此 document Store 是线程安全的,它初始化代码类似于下面这样:

public class documentStoreHolder
{
    private readonly static Lazy _store = 
    	new Lazy(CreatedocumentStore);

    private static IdocumentStore CreatedocumentStore()
    {
        var documentStore = new documentStore
        {
            Urls = // urls of the nodes in the RavenDB Cluster
            {
                "https://ravendb-01:8080",
                "https://ravendb-02:8080",
                "https://ravendb-03:8080",
            },
            Certificate = 
                new X509Certificate2("tasks.pfx"),
                    Database = "Tasks",
        };

        documentStore.Initialize();
        return documentStore;
    }

    public static IdocumentStore Store
    {
        get { return _store.Value; }
    }
}

上面的代码中使用 Lazy 是为了保证 document Store 只能被创建一次,因此在这里不需要担心线程安全和双重锁定问题。

约定

RavenDB 默认已经做了一些列的约定,这些约定既包含怎么保存内容,也包含如何序列化实体成文文档。在小型项目中使用这些默认的约定基本上已经满足了,但是对于中型项目甚至大型项目来说默认约定就显得有些鸡肋,因此在需要自定约定的情况下,我们可以调用 documentStore.Conventions 方法来设置符合项目情况的约定。比如说 RavenDB 默认使用 Id 作为文档内容的 ID ,但是我们并不希望这么做,我们希望使用实体名称加Id的形式来产生ID,那么我们可以这样定义:

documentStore.Conventions.FindIdentityProperty = 
    prop => prop.Name == prop.DeclaringType.Name + "Id";

这个例子只是展现 RavenDB 可以实现自定义约定,更多的属性我将会在后续课程中讲解。

身份验证

身份验证是我们在开发项目时必须要考虑到的问题,RavenDB 完全支持身份认证这个概念。一般来说我们的开发环境是如果用在线上的话是不安全,我们需要以安全的模式在线上环境中运行 RavenDB ,这时我们可以使用 RavenDB 支持的 x509 客户端证书来进行身份验证。这种认证方式表示出于特定原因授予数据库的特定访问权限。X509 是一种自然的验证方式,并且一般来说 X509 客户端证书是基于每个应用程序/角色授予的。具体的身份认证我将会在后面的专题中进行详细讲解。

Tip:默认情况下,RavenDB 会拒绝 localhost 在不安全模式下访问任何内容。这样做是出于安全原因,防止管理员在未经网络身份验证的情况下暴露 RavenDB。如果在禁用身份验证的情况下配置非本地 URL,那么 RavenDB 会显示错误页面,解释情况并提供有关如何解决问题的说明。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/716711.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号