bean的作用域
可以设置bean的scope属性来指定bean的作用域。默认情况下,scope为singleton,表示在整个IOC容器的生命周期中,该bean只会创建一次,每次从容器中获取该bean的时候都是同一个,相当于每次都是使用的同一个对象。
把scope设置为prototype时,创建IOC容器时,不会调用bean的构造方法,即不会创建bean,在每一次请求时都会获得一个新的bean。
<!--可以通过指定scope来配置bean的作用域
默认为singleton,容器创建时创建一个bean,整个容器生命周期内只创建一次,每次获取bean都是同一个
prototype:创建容器的时候不创建bean,每次请求的时候都创建一个新的bean
-->
<bean id="car" class="com.ustc.yi.autowire.Car" scope="prototype">
<property name="brand" value="Audi"></property>
<property name="price" value="300000"></property>
</bean>
另外,在默认情况下:当我们创建IOC容器时,即执行
ClassPathXmlApplicationContext ctx= new ClassPathXmlApplicationContext("spring-config.xml");
时,会先调用构造方法,如果使用setter方法注入属性,即使用<property>时,会继续调用类中的setter方法。