Spring 基础01

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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值