为什么80%的码农都做不了架构师?>>>   

Seervice服务:

A services provides a certain types of functionality, in a pluggable manner.

按照可插拔的方式提供摸个特定类型的功能;

/*** Marker interface for services.* 

* NOTE : All services must be {@link Serializable}! * * @author Steve Ebersole */ public interface Service extends Serializable { }

ServiceRegistry服务注册表:

A ServiceRegistry, at its most basic, hosts and manages Services.

服务注册表是用于创建 组织 存储 管理服务(IOC);

注:Services have a lifecycle. They have a scope. Services might depend on other services. And they need to be produced (choose using one implementation over another). The ServiceRegistry fulfills all these needs.

服务注册表主要是为了方便控制Service生命周期而存在;

public interface ServiceRegistry {/*** Retrieve this registry's parent registry.* * @return The parent registry.  May be null.*/public ServiceRegistry getParentServiceRegistry();/*** Retrieve a service by role.  If service is not found, but a {@link org.hibernate.service.spi.ServiceInitiator} is* registered for this service role, the service will be initialized and returned.* 

* NOTE: We cannot return {@code >} here because the service might come from the parent... * 获得当服务 * @param serviceRole The service role * @param The service role type * * @return The requested service. * * @throws UnknownServiceException Indicates the service was not known. */ public R getService(Class serviceRole); }

ServiceBinding服务关联:

服务如何和服务注册表关联通常是通过ServiceRegistry来初始化服务来进行关联;

ServiceRegistry的分类:

在hibernate中有三种注册表  BootstrapServiceRegistry(引导服务注册表),StandardServiceRegistry(标准服务注册表),SessionFactoryServiceRegistry(会话工厂注册表);

BootstrapServiceRegistry:

此注册表主要管理ClassLoaderService,IntegratorService,StrategySelector服务;

ClassLoaderService主要是用来和加载类资源 文件资源以及和java.util.ServiceLoader相互作用;(注:ServiceLoader是Java中提出的动态加载资源的方法I);

IntegratorService主要用于应用 第三方平台和Hibernate的集成;

StrategySelector

StandardServiceRegistry:

SessionFactoryServiceRegistry:

转载于:https://my.oschina.net/ZGang/blog/812188

Hibernate源码阅读2——Service Registry相关推荐

  1. 【Dubbo源码阅读系列】之远程服务调用(上)

    今天打算来讲一讲 Dubbo 服务远程调用.笔者在开始看 Dubbo 远程服务相关源码的时候,看的有点迷糊.后来慢慢明白 Dubbo 远程服务的调用的本质就是动态代理模式的一种实现.本地消费者无须知道 ...

  2. 源码 状态机_[源码阅读] 阿里SOFA服务注册中心MetaServer(1)

    [源码阅读] 阿里SOFA服务注册中心MetaServer(1) 0x00 摘要 0x01 服务注册中心 1.1 服务注册中心简介 1.2 SOFARegistry 总体架构 1.3 为什么要分层 0 ...

  3. Rpc框架dubbo-client(v2.6.3) 源码阅读(二)

    接上一篇 dubbo-server 之后,再来看一下 dubbo-client 是如何工作的. dubbo提供者服务示例, 其结构是这样的! dubbo://192.168.11.6:20880/co ...

  4. 【Dubbo源码阅读系列】服务暴露之本地暴露

    在上一篇文章中我们介绍 Dubbo 自定义标签解析相关内容,其中我们自定义的 XML 标签 <dubbo:service /> 会被解析为 ServiceBean 对象(传送门:Dubbo ...

  5. (五)Tomcat源码阅读:Connector组件分析

    一.概述 因为Connector组件没有实现接口规范,因此我们直接对该类的方法进行分析即可. 二.源码阅读 阅读思路,我的阅读思路是这样的,大的类无非就是对小类的使用,因此我们想分析整体的一下架构的化 ...

  6. [源码阅读] 阿里SOFA服务注册中心MetaServer(1)

    0x00 摘要 SOFARegistry 是蚂蚁金服开源的一个生产级.高时效.高可用的服务注册中心.本系列将带领大家一起分析其MetaServer的实现机制,本文为第一篇,介绍MetaServer总体 ...

  7. Dubbo注册协议原理以及源码阅读

    前言 继上次小编所讲RPC协议暴露服务并且远程调用之后,小编这次给大家带来注册中心协议整体流程原理以及源码精讲,Dubbo协议服务暴露与引用以及源码分析文章中,远程服务暴露可以只通过RPC协议即可,那 ...

  8. DM 源码阅读系列文章(二)整体架构介绍

    2019独角兽企业重金招聘Python工程师标准>>> 作者:张学程 本文为 DM 源码阅读系列文章的第二篇,第一篇文章 简单介绍了 DM 源码阅读的目的和规划,以及 DM 的源码结 ...

  9. 12.源码阅读(app启动流程-android api 26)

    activity的启动流程之前已经通过源码了解了,那么app的启动流程是怎样的,从我们按下app的图标,到应用启动起来显示出画面,中间都经历了什么? 安卓是基于java的,所以和java有一定的相似性 ...

最新文章

  1. 【Oracle】如何在查询视图时使用索引
  2. java 线程池 中断_如何中断(interrupt)线程(thread)(线程池的线程中断我的理解是一个意思)...
  3. Redis命令——发布订阅
  4. C指针原理(3)-ATT汇编
  5. 河南城镇化争植“智慧”基因
  6. 为什么选择spark
  7. 6.7开启Consul使用
  8. [华为] 华为交换机接口配置报错指南
  9. FreeSWITCH(二) - 安装部署、试用
  10. 航拍南山区六个文化相关全景VR解读
  11. mzy git学习,分支以及分支合并(四)
  12. MT4开发 之开发自己的数据源系统(dde UniversalDDEConnector )
  13. MySQL 5.7 中文全文检索
  14. Reactor(反应器)模式
  15. 华为Java机试题__转载
  16. 2021.03.12——学习公司项目
  17. SpringCloud - GateWay服务网关
  18. Springboot实现手机短信服务
  19. 头条系 巨量算数 _signature
  20. 汤臣倍健创业25周年,宣布公司未来3年四个战略重点

热门文章

  1. 江苏专转本全国计算机一级考试成绩查询,江苏“专转本”新规:考生需获计算机一级及以上证书...
  2. html复选框位置,html – 对齐复选框和标签
  3. php为什么学的人越来越少,为什么PHP这么受欢迎?
  4. Vivado 随笔(1) 综合属性之 ram_style rom_style?
  5. CuteEditor Html中显示Word格式粘贴的文章[CuteEditor WordToHtml]
  6. mpVue配置sass全局变量
  7. 阿里云Kubernetes实战2–搭建基础服务
  8. delete from t引发的血案
  9. 判断输入的字符是不是数字
  10. Maven实践:版本管理 SNAPSHOT