概要:
实例代码具体解释:
文件夹结构
Car.java
package com.coslay.beans.autowire; public class Car { private String brand; private double price; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } @Override public String toString() { return "Car [brand=" + brand + ", price=" + price + "]"; } public Car(){ System.out.println("Car's Constructor..."); } }
Main.java
package com.coslay.beans.scope; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.coslay.beans.autowire.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 == car2); } }
<?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.coslay.beans.autowire.Car" scope="prototype"> <property name="brand" value="Audi"></property> <property name="price" value="300000000"></property> </bean> </beans>