1.Spring 框架概述
Spring是一个开源的轻量级应用开发框架。
其目的用于简化企业应用程序的开发,降低侵入性。
Spring框架提供的IOC和AOP功能可以将组件(类)的耦合度
降至最低,以达到解耦。便于系统的升级和维护。
Spring框架的本质是管理应用中的对象,即创建对象
和维护对象之间的关系。
2.Spring容器
在Spring中,任何的java类和javaBean都会被当成Bean处理,
这些Bean通过容器管理和使用。
Spring容器由BeanFactory和ApplicationContext两种类型
Spring容器的实例化
ApplicationContext接口继承自BeanFactory接口,用于更多的
企业级方法。
加载工程classpath下的配置文件实例化
Spring xml = "配置文件的路径";
ApplicationContext ac = new ClassPathXmlApplicationContext(xml);
接口/抽象类的继承与实现关系
ApplicationContext(接口)->ConfigurableApplicationContext(接口)->
AbstractApplicationContext(抽象类)->AbstractRefreshableApplicationContext(抽象类)
->AbstractRefreshableConfigApplicationContext(抽象类)->AbstractXmlApplicationContext(抽象类)
->FileSystemXmlApplicationContext(实现类 可以通过绝对路径获取容器)
ClassPathXmlApplicationContext(实现类 可以通过相对路径获取容器)
Spring容器的使用
step1:在配置文件spring.xml文件中添加Bean定义
<bean id="唯一标识符" class="Bean的类型"></bean>
step2:在创建容器对象后调用getBean方法获取实例对象 getBean(id值);
3.Bean的作用域
根据业务场景确定合适的作用域
Spring容器在实例化Bean对象时,可以创建以下作用域的Bean对象(scope的属性值):
singleton:在Spring容器中一个Bean定义对应一个实例对象,默认单例(每次使用getBean()得到同一对象)
prototype:一个Bean定义对应多个实例对象(每次使用getBean()创建新的对象)
request:在一次http请求中,一个Bean定义对应一个实例对象
session:在一次http session中,一个Bean定义对应一个实例对象
Bean的作用域可以在<bean>定义时可通过scope属性指定
4.Bean的生命周期
指定初始化回调方法
<bean inti-method="方法名"/>
指定销毁回调方法(仅适用于单例模式)
<bean destory-method="方法名"/>
注:方法的定义在实体类中完成
在<beans>标签中的default-init-method属性为所有的bean提供
初始化回调方法,default-destory-method属性为所有的单例bean提供
销毁回调方法。(方法的定义位置)
AbstractApplicationContext是接口ApplicationContext的实现抽象类
该类提供了容器的关闭方法,在关闭容器时会销毁所有的
单例模式的Bean对象。
5.Bean的延迟实例化
默认:在容器实例化的同时会将单例模式的Bean提前进行实例化。
延迟实例化操作:在<bean>声明时指定lazy-init属性为true
延迟实例化的Bean在第一次获取时实例化
注意:延迟实例化仅适用于单例模式
在<beans>标签中default-lazy-init="true"为容器中所有的
单例Bean指定延迟实例化。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69922139/viewspace-2643508/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/69922139/viewspace-2643508/