Bean的作用域
2017-08-16 20:18
204 查看
1.在默认情况下所有bean都是单列形式。也就是说不管一个bean注入到其他bean多少次每一次注入的都是同一个实例。
2.单列(Singleton):在整个应用中,只创建一个bean实例。
代码演示
原型(Prototype):每一次注入或通过 Spring应用上下文获取的时候,都会创建一个新的bean实例。
代码演示
2.单列(Singleton):在整个应用中,只创建一个bean实例。
代码演示
package com.learnSpring06; public class Student { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } <?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"> <!-- 默认为Singleton模式 --> <bean id="student01" class="com.learnSpring06.Student"> <property name="message" value="我是张三"> </property> </bean> </beans> package com.learnSpring06; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class testStudent { @Test public void testStudent(){ ApplicationContext context=new ClassPathXmlApplicationContext("bean04.xml"); //第一次获得对象 Student student=(Student) context.getBean("student01"); System.out.println(student.getMessage()); //再一次获取student对象 Student student1 = (Student) context.getBean("student01"); System.out.println(student.getMessage()); //如果打印结果为true表明获取为同一个对象 System.out.println(student.equals(student1)); } } 控制台输出结果: 我是张三 我是张三 true
原型(Prototype):每一次注入或通过 Spring应用上下文获取的时候,都会创建一个新的bean实例。
代码演示
package com.learnSpring06; public class Student { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } } <?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"> <!-- 默认为Singleton模式 --> <bean id="student01" class="com.learnSpring06.Student" scope="prototype"> <property name="message" value="我是张三"> </property> </bean> </beans> p b8ff ackage com.learnSpring06; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class testStudent { @Test public void testStudent(){ ApplicationContext context=new ClassPathXmlApplicationContext("bean04.xml"); Student student=(Student) context.getBean("student01"); System.out.println(student.getMessage()); //再一次获取student对象 Student student1 = (Student) context.getBean("student01"); System.out.println(student.getMessage()); //如果打印结果为false表明获取为不同对象 System.out.println(student.equals(student1)); } } 控制台输出结果为: 我是张三 我是张三 false
相关文章推荐
- Spring之Bean的作用域
- Spring BeanBean的作用域及生命周期
- Spring中bean的作用域
- Spring Bean的作用域之间有什么区别?
- Bean的作用域
- Spring Bean的作用域
- 详解Spring中bean的作用域 .
- Spring Bean的作用域以及lookup-method标签的使用
- Bean的作用域_初始化_Bean的作用域_延迟初始化_指定Bean的初始化方法和销毁方法
- Spring中Bean的作用域
- spring中bean的作用域
- 3.spring bean的作用域(是否单例):测试
- Spring学习笔记(二)Bean的作用域
- Spring中Bean的作用域与StepScope关系、疑问
- Spring学习(6)---Bean定义及作用域的例子
- 10010---bean 的作用域:singleton;prototype;WEB 环境作用域
- spring(8) Spring中bean的作用域
- 【第三章】 DI 之 3.4 Bean的作用域 ——跟我学spring3
- 8.2.2:指定Bean的作用域
- Spring中bean的作用域