获取bean的方法
1.从ApplicationContex应用上下文容器中获取bean和从bean工厂容器中获取bean
具体案例:
从ApplicationContext中取bean
ApplicationContextac=new ClassPathXmlApplicationContext("com/hsp/ioc/beans.xml");
当我们去实例化beans.xml,该文件中配置的bean被实例(该bean scope是singleton)从bean中取出 ,如果我们使用beanfactory去获取bean,当你只是实例化该容器, 那么容器的bean不被实例化,只有当你去使用getBean某个bean时,才会实时的创建.
BeanFactory factory = new XmlBeanFactory(newClassPathResource("com/hsp/ioc/beans.xml"));
factory.getBean("student");
2.结论
a.如果使用ApplicationContext,则配置的bean如果是 singlton不管你用不用,都被实例化.(好处就是可以预先加载,缺点就是耗内存)
b.如果是BeanFactory ,则当你获取beanfacotry时候,配置的bean不会被马上实例化,当你使用的时候,才被实例(好处节约内存,缺点就是速度)
c.规定: 一般没有特殊要求,应当使用ApplicatioContext完成(90%)
bean 的 配置细节
配置文件
<!-- 配置bean的scope生命周期-->
<bean id="student" scope="singleton" class="com.cloud.ioc.Student">
<propertyname="name" value="张三"/>