一:首先Spring是一个javaee、轻量级、一站式企业级开发框架
一站式:即Spring框架涵盖视图层、控制层、持久层的所有相关技术,使用Spring就可以独立完成企业级项目的开。
轻量级:在众多的组件中,我们只需要使用四个核心组件就可以使用Spring做开发,至于其他的组件,需要的时候我们就添加,不需要的时候就移除。
4个核心jar包如下:beans context core expression 但还需要一个logging支持
二:spring一般用于1管理对象 2整合其他框架(基于IOC实现)
IOC:就是控制反转,即将代码调用的控制权,由调用方移交给被调用方。
IOC实现的基础:(1)基于面向接口编程 (2)基于依赖注入
三:依赖注入(DI):所谓的依赖的注入,就是通过接口或者类来引用对象,从而不需要通过new这种方式获取实例对象
3.1依赖注入的方式
1.Set方法注入set注入的时候,是根据set方法名来注入。比如set方式格式是setUsername,则注入的时候,属性的名称是username
2.构造方法注入:必须存在对应的构造方法。通过<constructor-arg>
注入方式:(1)根据构造方法上参数的顺序。(bean标签的index属性执行)
(2)根据构造方法上参数的名称。(bean标签的name属性指定)
3.2依赖注入的注意事项
针对对象的属性类型不同,注入的方式也不同。
(1)标量类型(基础数据类型及其包装类+String),通过value属性直接指定
(2)对于对象类型,则通过ref属性来进行引用注入。
(3)集合类型的注入,Spring则提供了一组针对集合类型注入的标签,如<set>、<list>、<map>、<properties>、<array>等。
四:Spring对properties文件的支持
(1)通过PropertySourcesPlaceholderConfigurer来加载配置文件。
(2)通过${key}去获取配置文件对应的值。
注意:Spring提供了一个context标签,用来解决properties文件的快速加载。
<context:property-placeholder file-encoding="utf-8" location="classpath:source.properties" |
五:Spring创建对象的几种方式
5.1.通过class直接创建
<bean name="customerService" class="cn.spring.service.impl.CustomerServiceImpl"></bean> |
5.2.通过工厂设计模式来创建
(1)不是直接创建对象,而是先获取对应工厂类,由工厂统一创建。
(2)在批量创建对象的时候,通过工厂给初始化的对象设置通用属性。
六:Spring对象的生命周期
6.1.Singlton:单例模式(默认)
(1)随着容器创建而初始化一次
(2)只要容器存在,对象一直存在。
(3)随着容器的销毁而销毁
6.2.Prototype:原型模式,即每次从容器获取对象的时候,都初始化一个新的对象出来。
(1)从容器获取得时候创建。
(2)在被调用的期间存活。
(3)长时间不被调用的情况下,被垃圾回收器所回收,不受容器管理。