Hibernate源码阅读2——Service Registry
为什么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相关推荐
- 【Dubbo源码阅读系列】之远程服务调用(上)
今天打算来讲一讲 Dubbo 服务远程调用.笔者在开始看 Dubbo 远程服务相关源码的时候,看的有点迷糊.后来慢慢明白 Dubbo 远程服务的调用的本质就是动态代理模式的一种实现.本地消费者无须知道 ...
- 源码 状态机_[源码阅读] 阿里SOFA服务注册中心MetaServer(1)
[源码阅读] 阿里SOFA服务注册中心MetaServer(1) 0x00 摘要 0x01 服务注册中心 1.1 服务注册中心简介 1.2 SOFARegistry 总体架构 1.3 为什么要分层 0 ...
- Rpc框架dubbo-client(v2.6.3) 源码阅读(二)
接上一篇 dubbo-server 之后,再来看一下 dubbo-client 是如何工作的. dubbo提供者服务示例, 其结构是这样的! dubbo://192.168.11.6:20880/co ...
- 【Dubbo源码阅读系列】服务暴露之本地暴露
在上一篇文章中我们介绍 Dubbo 自定义标签解析相关内容,其中我们自定义的 XML 标签 <dubbo:service /> 会被解析为 ServiceBean 对象(传送门:Dubbo ...
- (五)Tomcat源码阅读:Connector组件分析
一.概述 因为Connector组件没有实现接口规范,因此我们直接对该类的方法进行分析即可. 二.源码阅读 阅读思路,我的阅读思路是这样的,大的类无非就是对小类的使用,因此我们想分析整体的一下架构的化 ...
- [源码阅读] 阿里SOFA服务注册中心MetaServer(1)
0x00 摘要 SOFARegistry 是蚂蚁金服开源的一个生产级.高时效.高可用的服务注册中心.本系列将带领大家一起分析其MetaServer的实现机制,本文为第一篇,介绍MetaServer总体 ...
- Dubbo注册协议原理以及源码阅读
前言 继上次小编所讲RPC协议暴露服务并且远程调用之后,小编这次给大家带来注册中心协议整体流程原理以及源码精讲,Dubbo协议服务暴露与引用以及源码分析文章中,远程服务暴露可以只通过RPC协议即可,那 ...
- DM 源码阅读系列文章(二)整体架构介绍
2019独角兽企业重金招聘Python工程师标准>>> 作者:张学程 本文为 DM 源码阅读系列文章的第二篇,第一篇文章 简单介绍了 DM 源码阅读的目的和规划,以及 DM 的源码结 ...
- 12.源码阅读(app启动流程-android api 26)
activity的启动流程之前已经通过源码了解了,那么app的启动流程是怎样的,从我们按下app的图标,到应用启动起来显示出画面,中间都经历了什么? 安卓是基于java的,所以和java有一定的相似性 ...
最新文章
- 【Oracle】如何在查询视图时使用索引
- java 线程池 中断_如何中断(interrupt)线程(thread)(线程池的线程中断我的理解是一个意思)...
- Redis命令——发布订阅
- C指针原理(3)-ATT汇编
- 河南城镇化争植“智慧”基因
- 为什么选择spark
- 6.7开启Consul使用
- [华为] 华为交换机接口配置报错指南
- FreeSWITCH(二) - 安装部署、试用
- 航拍南山区六个文化相关全景VR解读
- mzy git学习,分支以及分支合并(四)
- MT4开发 之开发自己的数据源系统(dde UniversalDDEConnector )
- MySQL 5.7 中文全文检索
- Reactor(反应器)模式
- 华为Java机试题__转载
- 2021.03.12——学习公司项目
- SpringCloud - GateWay服务网关
- Springboot实现手机短信服务
- 头条系 巨量算数 _signature
- 汤臣倍健创业25周年,宣布公司未来3年四个战略重点
热门文章
- 江苏专转本全国计算机一级考试成绩查询,江苏“专转本”新规:考生需获计算机一级及以上证书...
- html复选框位置,html – 对齐复选框和标签
- php为什么学的人越来越少,为什么PHP这么受欢迎?
- Vivado 随笔(1) 综合属性之 ram_style rom_style?
- CuteEditor Html中显示Word格式粘贴的文章[CuteEditor WordToHtml]
- mpVue配置sass全局变量
- 阿里云Kubernetes实战2–搭建基础服务
- delete from t引发的血案
- 判断输入的字符是不是数字
- Maven实践:版本管理 SNAPSHOT