Spring01 依赖注入反转的基本概念

Spring的两大核心概念:

Spring的IOC(依赖反转注入)和Spring的AOP(面向切面编程)

其中,这两者所处的位置(pic1)

 

Spring的两大优势:
方便解耦

方便AOP

声明式编程

方便测试

方便集成一些优秀的框架

方便使用JAVAEE的API

Spring的体系架构:

Spring IOC 的作用

耦合,可以理解为依赖关系

包括:

1. 类之间的依赖关系

2. 方法之间的依赖关系

解耦,做到:

编译时不依赖,运行时依赖

方法:

1. 采用反射的方式创建对象,避免使用new关键字

2. 读取配置文件来获得全限定类名

解决方式1 :采用properties配置

首先我们要创建bean对象:

bean对象是什么,怎么做

1. properties 是什么

Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方,就是它的键和值都是字符串类型。

2. 怎么用properties配置(https://www.cnblogs.com/xudong-bupt/p/3758136.html)

2.1 初步配置

1)根据x.properties文件load一个Property对象

2)这个Property对象中以键值对的形式存储着你的你想要的类的具体类名

3)用classforName加载

2.2 为了单例模式,把加载过的类储存起来

1)加载一个bean的map类型

2)在静态代码块的时候就把这个map得到

考虑为什么单例是可以的:外部没有需要修改的属性,否则单例在多线程可能会出错

采用IOC如何实现工厂模式

 控制反转:一个类把自己创建类的权利交给了另一个框架(工厂)

也就是这个类只能根据名字创建对象,至于创建出来的对象是不是他想要的那一个,其实是无法控制的,这是由配置文件来决定的

具体实现:

 上图也是ApplicationContext常用的三个实现类:

ClassPathXmlApplicationContext :加载类路径下的配置文件

FileSystem.... :加载磁盘路径下的配置文件

AnnotationConfig... : 基于注解的配置

 

原文地址:https://www.cnblogs.com/Plorde/p/12494944.html