《Spring 3.X 企业应用开发实战》摘记 【IOC】

一、IOC的概念

IOC(Inverse of Control )控制反转,原本自身控制自身的权利转移到了其他身上。IOC是一个“协议”,或者理论。需要涉及到代码解耦,设计模式等一些问题考量。

其中包含了两层内容:控制 + 反转。意思明了

后来,IOC由于是种理论需要实战 — 就出现了依赖注入。

DI(Dependency Injection)依赖注入:即调用类让某一接口的实现类的依赖关系有第三方(容器或者协作类)注入,以移除调用类对某一接口实现类的依赖。这里就是将实战的武功秘籍传授了。实现类与类的依赖关系。

IOC容器还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、资源装载等高级服务。

二、注入的方式

依赖注入有三种注入方式:

1、通过构造函数注入

2、通过属性注入(常用方式)

3、接口注入

三、如何实现其注入呢?

那就涉及到相关的知识点,比如反射(类装载器 和 反射机制)、资源访问机制

a. 反射(Reflect)

b. 资源装载器

资源,考虑资源的来源。可能是本地的File(jar、zip等),网络的URL(FTP等)。Spring提供的Resource接口比JDK访问资源API更强大个好用。其实就是一种VFS的特例吧。

1. 读取配置文件时,Ant风格资源地址支持3中匹配符:

?:匹配一个字符

*:任意一个字符

**:匹配多层路径

Resource 与 ResourceLoader UML图:

BeanFactory类继承体系:

ApplicationContext主要实现类:

a. ClassPathXmlApplicationContext 从类路径加载配置文件

b. FileSystemXmlApplicationContext 从文件系统加载配置文件

Spring用于启动WebApplicationContext的Servlet和Web容器监听器

org.springframework.web.servlet.DispatcherServlet
org.springframework.web.context.ContextLoaderListener

待续。。。

时间: 2024-09-15 22:45:58

《Spring 3.X 企业应用开发实战》摘记 【IOC】的相关文章

《Spring 3.X 企业应用开发实战》摘记 【持续更新】

一.实战中的经验 注解相关 @Repository 标示一种作为单独在Model中使用的操作接口,没有封装的状态. 很常见的定义注解通过Spring定义Dao Bean.DAO(Data Access Object),项目中经常应用的数据库访问层可以使用该注释.但要注意和DDD(领域驱动设计)的区别. @Service 表示一种作为服务类,也是一种特殊的@Component. @Controller 标注一种是Controller层的类.也就是形象的Action层,我觉得Action更贴近生活点

《HBase企业应用开发实战》—— 3.6 本章小结

前 言 为什么要写这本书 大数据是继云计算.物联网之后IT行业又一次颠覆性的技术革命.大数据在互联网.军事.金融.通信和物理学等领域已经有不少落地案例,而Hadoop技术的快速发展也引起业界广泛关注.可以说,现在Hadoop是大数据处理的关键技术,也是迄今为止,最成熟.应用最广泛的技术. HBase原型是Google的BigTable论文,从基因上讲,HBase已经是Hadoop生态系统不可或缺的一部分.HBase是完全开源的,同时存在多个版本,并且版本升级非常快,其学习成本比较高,学习周期比较

《HBase企业应用开发实战》—— 1.2 HBase是什么

1.2 HBase是什么 HBase(Hadoop Database)是一个高可靠.高性能.面向列.可伸缩的分布式数据库,利用HBase技术可在廉价PC上搭建起大规模结构化存储集群.HBase参考Google的BigTable建模,使用类似GFS的HDFS作为底层文件存储系统,在其上可以运行MapReduce批量处理数据,使用ZooKeeper作为协同服务组件. HBase的整个项目使用Java语言实现,它是Apache基金会的Hadoop项目的一部分,既是模仿Google BigTable的开

《HBase企业应用开发实战》—— 第1章 认识HBase

第1章 认识HBase 本章将介绍大数据背景和HBase的基本概念,从大数据引申到NoSQL,并阐述HBase出现的契机.随后,将介绍HBase的概念.发展历史.发行版本和基本特性.其中,HBase的核心功能模块将作为一个小节单独重点介绍,最后通过介绍HBase的使用场景和经典案例,让读者朋友能够清晰地了解HBase可以做什么.作为NoSQL家庭的一员,HBase的出现弥补了Hadoop只能离线批处理的不足,同时能够存储小文件,提供海量数据的随机检索,并保证一定的性能.而这些特性也完善了整个Ha

《HBase企业应用开发实战》—— 1.5 HBase的使用场景和经典案例

1.5 HBase的使用场景和经典案例 了解软件产品的最好方法是如何使用,解决什么问题以及如何适用于大型应用架构.接下来的内容将详细介绍一些业界成功使用HBase的场景.但是,不要认为HBase只能解决下面的这些使用场景,因为它是一个正在发展和完善的技术框架,根据使用场景进行的创新正驱动着系统的发展.下面是对HBase适用场景的一些抽象概括,从需求角度进行抽象,涵盖存储量级.性能.扩展.数据格式和关联关系等方面.存储大量的数据(PB级数据)且能保证良好的随机访问性能.需要很高的写吞吐量,瞬间写入

《HBase企业应用开发实战》—— 2.1 先决条件

2.1 先决条件 在开始安装HBase之前需要做一些准备工作,这涉及操作系统设置.分布式模式Hadoop的部署及HBase自身的配置,因此要确保在运行HBase之前这些条件已经具备.以下将介绍HBase依赖的一些重要的中间件.系统服务或配置. 1.?运行时环境JDK 和Hadoop一样,HBase需要JDK1.6或者更高版本,推荐采用Oracle公司的版本,对于JDK1.6不要使用u18及以前的版本,因为这些版本Java的垃圾收集器会遇到"jvm crash"的问题(可以通过Goolg

《HBase企业应用开发实战》—— 2.2 HBase运行模式

2.2 HBase运行模式 HBase有两种运行模式:单机模式和分布式模式.在默认情况下HBase运行在单机模式下,如果要运行分布式模式的HBase,需要编辑安装目录下conf文件夹中相关的配置文件. 不管运行在什么模式下,都需要编辑安装包的conf目录下的hbase-env.sh文件来告知HBase Java的安装路径.在这个文件中还可以设置HBase的运行环境,诸如Heap Size和其他有关JVM的选项,还有日志文件保存目录.进程优先级等.最重要的是设置JAVA_HOME指向Java安装的

《HBase企业应用开发实战》—— 1.4 HBase的核心功能模块

1.4 HBase的核心功能模块 Hadoop框架包含两个核心组件:HDFS和MapReduce,其中HDFS是文件存储系统,负责数据存储:MapReduce是计算框架,负责数据计算.它们之间分工明确.低度耦合.相关关联.对于HBase数据库的核心组件,即核心功能模块共有4个,它们分别是:客户端Client.协调服务模块ZooKeeper.主节点HMaster和Region节点RegionServer,这些组件的描述和相互之间的关联关系如图1-3所示. 1.4.1 客户端Client 客户端Cl

《HBase企业应用开发实战》—— 2.3 HBase的Web UI

2.3 HBase的Web UI 通过HMaster的60010端口可以查看HBase的Web UI页面,图2-1列出了集群的一些关键信息,这些信息包括HBase的版本.ZooKeeper集群的主机列表.HBase根目录等. 图2-2列举出了目前HBase上有哪些表及表的一些基本信息,其中-ROOT-和.META.表是永远存在且成功加载的,如果这两张表加载不成功,那么集群虽然已经启动,但是却无法正常读写数据. 图2-2下方列举出了集群中的RegionServer主机,后面包含了每台RegionS