二.IOC实践

2.1 Spring核心接口

Spring容器负责创建Bean实例,所以需要知道每个Bean的实现类,Java程序面向接口编程,无须关心Bean实例的实现类;但是Spring容器必须能够精确知道每个Bean实例的实现类,因此Spring配置文件必须精确配置Bean实例的实现类。

​ Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。他们都可代表Spring容器,Spring容器是生成Bean实例的工厂,并且管理容器中的Bean。

Spring框架之IOC实践_IOC

​ 早期的电脑性能低,内存小,所以spring容器的容量不足,不能讲所以的对象全部创建好放入容器,所以使用的是BeanFactory,需要某个对象时,再进行创建,随着电脑硬件的发展,内存越来越大,所以spring框架引入了ApplicationContext,将所有的对象都创建好,放入容器,使用哪个对象,从容器中取得即可。

2.2 ApplicationContext 接口

​ 三个实现类

  • ClassPathXmmlApplicationContext:它可以加载类路径下的配置文件,要求文件必须在类路径下,不存在,则无法加载。
  • FileSystemApplicationContext:加载任意路径下的配置文件(必须有访问权限)
  • AnnotationConfigApplicationContext:用于读取注解创建容器

2.3 获取Bean的三种方式

  • ​ 按照类型拿 bean:唯一

  • ​ 按照 bean 的名字拿 bean:不安全

  • 按名字和类型拿 bean:(推荐)

2.4 创建Bean的三种方式

2.4.1 无参构造注入(默认)

2.4.2有参构造注入

​ 2.4.2.1 下标方式

​ 2.2.4.2 type

​ 2.2.4.3 name

  • ​ 按照类型拿 bean:唯一

  • ​ 按照 bean 的名字拿 bean:不安全

  • 按名字和类型拿 bean:(推荐)

2.4 创建Bean的三种方式

2.4.1 无参构造注入(默认)

2.4.2有参构造注入

​ 2.4.2.1 下标方式

​ 2.2.4.2 type

​ 2.2.4.3 name

​ 2.2.4.4 ref