1、@Scope("singleton")/@Scope("prototype")
@Bean("person")
public Person person(){
return new Person("张三",21);
}
其中,sington和protype分别代表单例和多例模式创建对象。单实例(系统默认值),ioc容器启动会调用方法创建对象放在ioc容器中,以后每次获取就是直接从容器中拿。容器中有且只有一个该类型的对象。而多实例,ioc容器启动并不会去调用方法创建对象放在容器中,每次获取的时候才会调用方法创建对象。容器中每获取一次就创建一个新的对象。
对于单例模式,可以通过注解@Lazy来延迟加载。也就是在容器创建的时候,不加载对象,当第一次获取该对象时,再创建对象,这就是所谓的延迟加载。(个人认为延迟加载可以在一定程度上提高容器的加载速度,减少不必要对象的加载,不知道对程序运行是否也有优点)
网友评论