标签:spring4学习
spring bean 的作用域有四种:singleton、prototype、session和request.
常用的有singleton和prototype两种。其他两种比较少用
使用bean的scope属性来配置bean的作用域
singleton:默认值。容器初始化时创建bean实例,在整个容器的生命周期内只创建这一个bean,单例的。
prototype:原型的,容器初始化时不创建bean实例,而在每次请求时都创建一个新的bean实例,并返回。
例如:
Car.java:
package com.ksk.spring; public class Car { private String brand; private String corp; private int price; private int maxspeed; public void setBrand(String brand){ this.brand = brand; } public void setPrice(int price){ this.price = price; } public Car(){ System.out.println("init...."); } }
beans-scope.xml:
<?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.xsd"> <!-- 使用bean的scope属性来配置bean的作用域 singleton:默认值。容器初始化时创建bean实例,在整个容器的生命周期内只创建这一个bean,单例的。 prototype:原型的,容器初始化时不创建bean实例,而在每次请求时都创建一个新的bean实例,并返回。 --> <bean id="car" class="com.ksk.spring.Car" scope="singleton"> <property name="brand" value="audi"></property> <property name="price" value="30000"></property> </bean> </beans>
Main.java:
package com.ksk.spring.beans.scope; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.ksk.spring.Car; public class Main { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-scope.xml"); // Car car = (Car) ctx.getBean("car"); // Car car2 = (Car) ctx.getBean("car"); // // System.out.println(car); // System.out.println(car2); // // System.out.println(car==car2); } } 当scope="singleton"时,输出为true,当scope="prototype"时,输出为false。
本文出自 “我的青春我做主” 博客,谢绝转载!
标签:spring4学习
原文地址:http://519524666.blog.51cto.com/3522143/1573884