首页 > 编程语言 > 详细

Spring4 In Action-3.2@Scope单例、多例Bean

时间:2017-09-06 23:42:58      阅读:390      评论:0      收藏:0      [点我收藏+]

Spring In Action-3.2@Scope单例、多例Bean

代码下载地址:http://download.csdn.net/download/poiuy1991719/9967494

 

Singleton:单例    
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
@Scope("singleton")

 

Prototype:每次注入都会创建新的  
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Scope("prototype") 

 

 

Session:Web的每一次会话    

 Request:Web的每一次请求

package com.bean.conditional;

import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component("magicBeanName")//重命名:配置类里面的方法与之对应
public class MagicBean {
    private String name="MagicBean";
    public MagicBean() {
        System.out.println("MagicBean:实例化"+this);
    }
    
    public void showName(){
        System.out.println("Show Name is:"+name);
    }
}

 

package com.bean.conditional;

import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

@Configuration
@ComponentScan(basePackages={"com.bean"})
public class BeanConfigs {

    @Bean
    //Singleton:单例  Prototype:每次注入都会创建新的 Session:Web的每一次会话  Request:Web的每一次请求
//    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    @Scope("prototype")
    //@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
//    @Scope("singleton")
    public MagicBean magicBeanName(){//方法名来源,Bean类的注解:@Component("magicBeanName")
        return new MagicBean();
    }
}

 

package test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.bean.conditional.BeanConfigs;
import com.bean.conditional.MagicBean;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={BeanConfigs.class})
public class test {
    @Autowired
    MagicBean mb;
    
    @Autowired
    MagicBean mb1;

    @Test
    public void selfTest(){
        mb.showName();
        mb1.showName();
    }
}

 

 

也可以通过xml文件配置来实现:

<bean id="magicBean" scope="prototype"></bean>

 

Spring4 In Action-3.2@Scope单例、多例Bean

原文:http://www.cnblogs.com/zjsy/p/7487529.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!