Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring中的@lazy和@Scope(“prototype”)有什么区别_Java_Spring - Fatal编程技术网

Java Spring中的@lazy和@Scope(“prototype”)有什么区别

Java Spring中的@lazy和@Scope(“prototype”)有什么区别,java,spring,Java,Spring,根据我在联机资源中读到的内容,@lazy和scopeprototype都会按需创建bean,这与默认的作用域不同,默认的作用域是singleton。那么,在定义类时,什么时候适合使用@lazy而不是prototype,反之亦然,或者同时使用它们 提前感谢。懒惰:bean只有在被引用时才被初始化,但随后可以被重用 原型:每次使用bean都会得到一个新实例 因此,Lazy的资源密集度较低。Lazy:bean只有在被引用时才会初始化,但随后可以重用 原型:每次使用bean都会得到一个新实例 因此,La

根据我在联机资源中读到的内容,@lazy和scopeprototype都会按需创建bean,这与默认的作用域不同,默认的作用域是singleton。那么,在定义类时,什么时候适合使用@lazy而不是prototype,反之亦然,或者同时使用它们


提前感谢。

懒惰:bean只有在被引用时才被初始化,但随后可以被重用

原型:每次使用bean都会得到一个新实例


因此,Lazy的资源密集度较低。

Lazy:bean只有在被引用时才会初始化,但随后可以重用

原型:每次使用bean都会得到一个新实例


因此,Lazy的资源密集度较低。

@Lazy不是作用域。要回答您的问题,您首先需要了解范围和实例化之间的关系

每个容器创建一次单例(默认范围)(例如,在启动webapp时)。 每次注入都会创建一次原型(每次类获得bean时)

@Lazy告诉Spring不要急于创建bean。对于单例,这意味着它不会在启动时创建,而是在第一次注入时构建。它对原型没有影响,因为它们是在注入之前才被创建的

总之,@Lazy只适用于单例。如果说lazy singleton是由一个非lazy singleton(在启动时创建)注入的,那么@lazy不会有效地执行任何操作

注意:@Lazy还可能影响其他作用域,如请求、会话等。您可能正在使用代理来处理这些作用域,这将从技术上控制实际的作用域/惰性

有关范围的更多信息,请参阅Spring的文档:


@Lazy不是作用域。要回答您的问题,您首先需要了解范围和实例化之间的关系

每个容器创建一次单例(默认范围)(例如,在启动webapp时)。 每次注入都会创建一次原型(每次类获得bean时)

@Lazy告诉Spring不要急于创建bean。对于单例,这意味着它不会在启动时创建,而是在第一次注入时构建。它对原型没有影响,因为它们是在注入之前才被创建的

总之,@Lazy只适用于单例。如果说lazy singleton是由一个非lazy singleton(在启动时创建)注入的,那么@lazy不会有效地执行任何操作

注意:@Lazy还可能影响其他作用域,如请求、会话等。您可能正在使用代理来处理这些作用域,这将从技术上控制实际的作用域/惰性

有关范围的更多信息,请参阅Spring的文档:


请注意“这对原型bean没有意义-它们不能被急切地初始化,所以没有必要将它们标记为懒惰。”非常感谢您的回复“现在它有意义了”请注意“这对原型bean没有意义-它们不能被急切地初始化,所以没有必要将它们标记为懒惰。”非常感谢您的回复,现在有意义了