Ioc(控制反转):应用本身不负责依赖对象的创建和维护,而是交给外部容器负责的。这样控制权就由应用转给容器。
DI(依赖注入):在运行期,由外部容器动态地将依赖对象注入到组件中。
轻量级:框架使用服务的多少。spring默认是轻量级框架。
实例化spring容器
ApplicationContext ax=new ClassPathXmlApplicationContext("pring.xml");
AbstractApplicationContext abx=new ClassPathXmlApplicationContext("pring.xml");
第二个方法可是实现close()方法关闭容器
获得spring的xml中的bean
ax.getBean("service");
创建bean类的三种方法
1、使用类构造器实例化
<bean id="" class=""/>
再通过实例化容器,用getBean()获得bean
2、使用静态工厂方法实例化
<bean id="" class="" factory-method="createOrder"/>
public class OrderFactory{
public static OrderFactoryBean createOrder(){
return new OrderFactoryBean();
}
}
3、使用实例工厂方法实例化
<!--工厂bean-->
<bean id="service" class="com.qh.beanFactory.BeanFactory"></bean>
<!--实例化工厂bean-->
<bean id="createBean" factory-bean="service" factory-method="create"></bean>
bean的作用域(通过bean的scope属性来确定)
singletion:在每个spring Ioc容器中一个bean定义只有一个对象实例,默认情况下会在容器启动时初始化bean,但是我们可以指定bean节点的 lazy-init="true"来延迟初始化bean,这时候,只有第一次获取bean才初始化 bean。如果想对所有的bean都应用延迟初始化,可以在根节点beans设置default-lazy-init=“ture”
prototype:每次获取的都是新的实例