疯狂小兵

向往自由,追求卓越! 阅读

Spring学习 - bean 的别名注册原理

背景 在学习Spring源码前已经知道在xml中配置的时候可以注册beanName 和多个别名aliasName,那beanName 和多个aliasName 之间的关系是怎么处理的呢? 实现原理 Bean 的别名注册器有定义别名功能的接口AliasRegistry。该接口定义了四件事情 注册别名。方法registerAlias。 删除别名。方法removeAlias。 ...

Spring学习 - BeanDefinition 的机制

BeanDefinition 介绍 BeanDefinition是 Spring 中一种重要的数据模型定义,用来存储 Spring 的启动期间通过 xml 或者注解方式扫描的需要注入进 Spring的 IOC 容器内的 Bean 信息。 BeanDefinition 类依赖图 BeanDefinition 类信息 BeanDefinition 接口类,定义BeanDefinit...

Spring学习 - 自动装配同一个接口的多个实现类

介绍 在平时使用 Spring 的 DI 机制时,几乎都是在某个类中引用接口的单个实现。但是Spring 如何将多个实现类同时注入进List<Interface> 中呢。好吧,不说废话了,直接上代码吧。 原来的引用方式 public interface HelloService { void sayHello(); } @Service public class ...

分布式存储系统学习笔记 - 1. 分布式存储的概念

分布式存储系统的特性 可扩展。系统的整体性能随集群的扩展而线性增长。 低成本。构建在普通的 PC 机上。 高性能。无论时对集群还是对单机,都要求高性能。 易用。易用的对外接口,完善的监控和运维工具。 分布式系统的挑战 数据和状态信息的持久化。自动迁移,自动容错,并发读写时的数据一致性。 问题和挑战 数据分布 如何将数据分布到多...

GFS的演进

人物介绍 Kirk McKusick : 以在 BSD Unix 上的工作而闻名,而且涉及了 BSD 上的 FFS(Fast File System) Sean Quinlan : 担任了两年的 GFS技术负责人,现在继续担任 Google 的首席工程师 GFS 涉及预估 数 GB大小的文件 包含TB 级别的信息和百万对象的数据集 Q&A 是什么原因...

Google File System及其继任者Colossus

Google File System及其继任者Colossus 在CMU 16Fall学期Storage Systems的课堂上,我有幸听了在Google Infra Team的Larry Greenfield的一个Lecture。其中,Larry对GFS的设计初衷理念、优劣势、瓶颈、改进以及现役系统Colossus (GFS2)进行了简要介绍。其中涉及的内容相当宝贵,故在这里记下。 背...

Spring学习 - 自定义动态数据源

动态数据源 需要实现类继承自org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource,来实现自定义的数据源路由。 自定义实现动态数据源 //自定义实现方法`determineCurrentLookupKey`来确定当前lookupKey,通过该 key 找到配置的多个数据源中的目标数据源。 public c...

git进阶经验- git提交 log 的模板配置

git commit 规范 Commit message 和 Change log 编写指南 git commit 模板配置 背景 为了 RD 在开发时更方便的使用 git commit 的模板,既可以明晰本次提交的目的,又可以方便便捷的使用模板而无需时刻记着模板的格式规范。 目标 提高 RD 使用模板提交 commit log 的意愿 方案 terminal 方式 comm...

Spring学习 - 自定义Spring 的 bean扫描器

自定义扫描器 创建自定义的注解类型 如创建注解MyAnno @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface MyAnno { @AliasFor(annotation = Component.class) Str...

Spring源码学习 - Scanner的工作原理

Spring 自带的类扫描器为ClassPathBeanDefinitionScanner,在使用注解@ComponentScan,或者xml 配置<context:component-scan/>时都会调用该扫描器扫描指定的目标类。 ClassPathBeanDefinitionScanner最重要的方法是doScan,通过该方法完成 BeanDefinition 的生成和注...

  • 第1页 / 跳第 页 / 共23页
TOP