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) TgetObject()实现该方法返回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)