victory的博客

长安一片月,万户捣衣声

0%

spring | bean的作用域

bean的作用域

1.项目目录

2.Student.java

package com.atguigu.ioc.scope;

public class Student {
    private Integer sid;
    private String sname;
    public Student() {
        System.out.println("Student 无参构造方法");
    }
    public Integer getSid() {
        return sid;
    }
    public void setSid(Integer sid) {
        this.sid = sid;
    }
    public String getSname() {
        return sname;
    }
    public void setSname(String sname) {
        this.sname = sname;
    }
//    @Override
//    public String toString() {
//        return "Student [sid=" + sid + ", sname=" + sname + "]";
//    }
}

3.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 id="student" class="com.atguigu.ioc.scope.Student" scope="singleton">
        <property name="sid" value="1001"></property>
        <property name="sname" value="张三"></property>
    </bean>

</beans>

4.Test.java

package com.atguigu.ioc.scope;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {
    public static void main(String[] args){
        /**
         * 若spring中有单例模式(singleton)的bean,在初始化容器时就会创建此对象
         * 而多例即原型(prototype)的bean,会在使用时创建
         */
        ApplicationContext ac = new ClassPathXmlApplicationContext("scope.xml");
        
//        Student student1 = ac.getBean("student",Student.class);
//        Student student2 = ac.getBean("student",Student.class);
//        
//        System.out.println(student1);
//        System.out.println(student2);
    }
}