spring 学习笔记1
spring学习笔记
1.spring概念:
[1]控制反转(IoC):应用不负责创建及维护依赖对象,依赖对象是由容器创建及维护的,这种控制的转移就叫控制反转。
[2]依赖注入:运行期间,容器将依赖对象注入到组件中。
2.spring容器实例化有2种方式
[1]ApplicationContent act=new ClassPathXmlApplicationContent(new String[]{"xx.xml"});
[2]ApplicationContent act=new FileSystemXmlApplicationContext(new String[]{"d:\\xx.xml"});
第2种方法不好,测试的时候可以使用,但是如果操作系统不一样,若是linux系统,则就不可以了。
3.spring的bean实例化原理:
spring根据bean.xml文件读到<bean...>,根据bean的class属性通过反射(Class.forName())得到Bean实例对象。
4.spring 的bean有3中实例化方法:
[1]构造方法
<bean id="type" />
[2]静态工厂方法
<bean id="type2" factory-method="createTypeBuss()" />
[3]实例工厂方法
<bean id="typeBussFactory" />
<bean id="type3" factory-bean="typeBussFactory" factory-method="createTypeBuss2()"/>
5.spring bean的作用域
在beans.xml文件中<bean id="xxx" scope="" />元素中是通过bean标签的scope属性指定的。
[1]singleton 单例(默认)
[2]prototype 每次从容器都得到一个新的bean
[3]request
[4]session
[5]global session
6.spring bean的生命周期
[1]bean的初始化:默认当容器初始化时就实例化bean了。
可以通过<bean...>标签的lazy-init(延迟加载)属性改变,为true时则当调用时才初始化,为false时则当容器初始化时就实例化了(默认)。
建议:使用默认的,否则只有在运行时才能看到bean是否被加载。
若在bean初始化时要执行init()方法,则通过<bean...>标签的init-method属性指定初始化方法。
[2]bean的销毁:当sprign容器关闭时才销毁bean
可以通过<bean...>标签的destory-method元素指定bean的销毁方法。