spring的学习笔记-Bean的作用域

 

 

已Hello World为例子:

 

HelloWorld.java

package com.example.springpractice;

public class HelloWorld {
    private String message;

    public void getMessage() {
        System.out.println("Your message: " + message);
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

MainApp.java

package com.example.springpractice;

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

public class MainApp {
    public static void main(String[] args) {
        ApplicationContext ac = new ClassPathXmlApplicationContext("Bean.xml");
        HelloWorld objA = (HelloWorld) ac.getBean("HelloWorld");
        objA.getMessage();
        objA.setMessage("修改了message");
        HelloWorld objB = (HelloWorld) ac.getBean("HelloWorld");
        objB.getMessage();
    }
}

 

以上代码不动,修改bean配置文件的作用域来学习bean作用域的效果:

 

Bean.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-3.0.xsd">
    <bean id="HelloWorld" class="com.example.springpractice.HelloWorld" scope="prototype">
        <property name="message" value="学习ing"/>
    </bean>

</beans>

scope="prototype",每次都生成新的对象。

效果:

spring的学习笔记-Bean的作用域

 

scope="singleton",单例,相当于这个类只有一个实现对象。

效果:

spring的学习笔记-Bean的作用域

 

另外还有请求维度的:request、session、global-session,等学会web服务后再总结。

 

上一篇:springboot 整合 mybatis plus -- 树状图


下一篇:2021 多校 杭电 第九场