<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!-- spring创建对象 -->
<!-- 1.通过构造器创建 class属性:要创建的对象的类型 id:别名, -->
<bean class="java.util.ArrayList" id="obj1">
</bean>
<!-- 2.通过静态方法工厂创建对象 调用某类的静态方法来创建对象 -->
<bean class="java.util.Calendar" factory-method="getInstance"
id="obj2"></bean>
<!-- 3.通过实例工厂创建对象 调用某对象的非静态方法来创建对象 factory-bean:要调用的对象的名称(id就是名称) 此处必须引用的是容器中已经声明过的对象
factory-method:要调用的方法 注意:所创建的对象的类型是方法返回的类型。 -->
<bean factory-bean="obj2" factory-method="getTime" id="obj3"></bean>
<!-- bean的作用域 singleton:Spring创建的某个类型的bean在容器中 默认只有一个实例即单例 prototype:spring创建的某个类型的bean在容器中
有多个实例,非单例 加上属性scope,即可改成创建多个实例 -->
<bean class="java.util.HashMap" id="obj4" scope="prototype" ></bean>
<!-- 管理bean的生命周期 让spring自动调用该bean的初始化及销毁方法 通过另外两个属性调用初始化,销毁方法 init-method:声明初始化方法,在容器创建bean之后自动调用
destroy-method:声明销毁方法,spring容器关闭时,自动调用销毁只对单例的 bean有效,非单例的bean无效,加scope属性,表示非单例
lazy-init延迟初始化,在容器创建时,并不会创建bean,而是在获取bean时才创建 将bean创建的时机延迟了,只对单例的bean有效 适用于低频率使用的对象 -->
<bean class="bean.Example" id="exa" init-method="init"
destroy-method="destroy" scope="singleton" lazy-init="true"></bean>
<!-- Spring IOC 是由依赖注入(DI)实现的 包括两种注