首页 > 代码库 > spring4学习:bean的作用域
spring4学习:bean的作用域
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="http://www.mamicode.com/audi"></property> <property name="price" value="http://www.mamicode.com/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学习:bean的作用域
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。