【Spring】 (2)singleton 单例 ,每次调用只创建一次

来源:互联网 发布:淘宝商城家具城松木床 编辑:程序博客网 时间:2024/05/24 04:22
package com.example.demo_2_1;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Service;/** * Created by WangBin on 2017/4/10. * */@Service@Scope("prototype")//每次调用新建一个bean示例public class DemoPrototypeService {}

package com.example.demo_2_1;import org.springframework.stereotype.Service;/** * Created by WangBin on 2017/4/7. * * 单例 */@Service//默认为 Scope("singleton")  一个容器只有一个 bean实例public class DemoSingletonService {}


package com.example.demo_2_1;import org.springframework.context.annotation.AnnotationConfigApplicationContext;/** * Created by WangBin on 2017/4/10. * */public class Main {    public static void main(String[] args) {        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ScopeConfig.class);        DemoSingletonService service1= context.getBean(DemoSingletonService.class);        DemoSingletonService service2= context.getBean(DemoSingletonService.class);        System.err.println(service1==service2);//返回  true  证明  该对象 在堆内存只存在一个        DemoPrototypeService serviceA1 = context.getBean(DemoPrototypeService.class);        DemoPrototypeService serviceA2 = context.getBean(DemoPrototypeService.class);        System.err.println(serviceA1==serviceA2);//返回  false  因为 在 bean上 注解了  Prototype  所以每次调用对象都新建一个bean实例        System.err.println(service1.equals(service2));//equals 也可以用于对象比较 堆内存地址        context.close();    }}

package com.example.demo_2_1;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;/** * Created by WangBin on 2017/4/10. */@Configuration@ComponentScan("com.example.demo_2_1")public class ScopeConfig {}



原创粉丝点击