spring注解驱动开发-(2)-scope-单例和prototype

1. 示例代码

package com.niewj.config;

import com.niewj.bean.Person;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;

@Configuration
public class ScopeConfig {

    /**
     * @return
     */
    @Scope("singleton")
    @Lazy
    @Bean
    public Person person() {
        return new Person("json", 22);
    }
}

singleton和prototype

2.1 单例bean 默认是预先 初始化的;

2.2 prototype 默认是延迟初始化; 只有getBean才会初始化构造(调用构造方法)

2.3 singleton单例的如果想延迟初始化, 可以在@Bean同时加注解@Lazy

2.4 初始化次数:

singleton的不管获取几次, 只初始化一次;
prototype的获取几次, 初始化几次!

3. Bean的作用域: 完整的是:

  • singleton(默认)
  • prototype
  • request(Web)
  • session(Web)

后两种用的少


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 hi@niewj.com

×

喜欢就点赞,疼爱就打赏