1. ApplicationContext ac = newClassPathXmlApplicationContext(“applicationContext.xml”);
ApplicationContext 是Spring的核心,是一个巨大的工厂,他来创建实例化。
2. Inversion of Control(IoC)
a) 各组件面向接口编程,把耦合度提高到接口的层次,提高可扩展性
b) 各组件不是由程序产生,而是由Spring来产生,并初始化
c) Spring采用配置文件,Annotation来管理Bean的实现,依赖关系,根据配置文件,利用反射机制来创建实例,在其setter注入依赖关系。
3. BeanFactory是ApplicationContext的实例,一般情况下是用ApplicationContext而在一些内存非常关键的时候才用BeanFactory.
4. ApplicationContext事件机制
a) ApplicationEvent容器事件
b) ApplicationListener监听器
c) Spring事件模式就是标准的观察者模式
5. 指定属性标识符
a) Id 唯一标识
b) name 名字
c) alias 别名
6. 容器中的作用域
a) Singleton:单例模式
b) Prototype:原型模式
c) Request:对每一次的http请求有效
d) Session:对每一次HTTPSession产生一个新实例
e) Global session :全局
7. Spring对Bean的要求
a) 尽量用无参构成函数
b) 构成注入的时候要提供对应的构造函数
c) 设值注入对应提供setter方法
d) 与传统的JavaBean的区别
i. JavaBean多作为参数传递要求提供setter,getter;SpringBean 只接受设值注入的setter
ii. 任何组件都可以称为Bean
iii. 生命周期,JavaBean作为参数传递不受任何容器的管理,Spring Bean有生命周期
8. Spring Annotation
a) @Configuration 修饰一个Java配置类
b) @Bean 修饰一个方法
c) @Value修饰一个字段(Field)
d) @import导入其他Java配置类
e) @Scope 修饰一个方法,指定该方法对应的Bean生命周期
f) @Lazy 修饰一个方法,指定该方法对应的Bean是否需要延迟加载
g) @dependOn 修饰一个方法,指定初始化该方法对应的Bean之前初始化指定的Bean
h) @ImportResource(“classpath:/beans.xml”)以Annotation为主时候加载XML
i) <context:annotation-config/>Xml为主的时候加载Annotation
9. 创建Bean
a) 使用static 静态工厂创建Bean
i. 使用class元素确定静态工厂类
ii.
b) 使用实例工厂方法创建Bean
i. 使用factory-bean属性确定Bean
c) 相同处:
i. 都使用factory-method 属性指定Bean实例工厂模式
ii. <constructor-arg value=””>指定工厂方法需要参数
iii. 使用<property name=”” value=””>指定属性的参数值
10. 容器中的工厂Bean (FactoryBean)
a) T getObject()实现该方法返回Bean生成的Java实例
b) Class<?> getObjectType()返回java实现类
c) boolean isSingleton()是否是单例
11. Bean的生命周期
a) singleton.管理Bean的init和destory
b) prototype.完全交给客户端
c) init-method和destory-method来指定(回收资源)close()关闭
d) 当在singleton中应用prototype时
i.在其添加一个抽象方法abstract
ii.<lookup-methodname=”” bean=”prototype.id”>
12. XMLSchema 的使用
IoC(Inversionof Control)