Eag*_*ner 8 java spring dependency-injection
Spring执行DI并创建对象,以便您的程序不必担心创建对象.但这里的问题是何时创建了一个注入对象的实例.是在主程序使用实例时还是在创建主程序实例时.
ska*_*man 13
上下文启动时,上下文中的所有bean都会被实例化,注入和初始化.到从上下文中检索第一个bean时,所有bean都可以使用了.
有两件事可以防止bean在上下文启动时被初始化:
prototype,request或session)的beanscope="xyz"lazy-init="true",在这种情况下,它只会在明确要求时被实例化,或者它是否需要作为其他bean的依赖项.在评论中,OP写道:
因此,程序员需要决定是否需要延迟初始化或初始化bean.这可能是非常主观的,但是你可以让我知道在这种情况下所遵循的任何最佳实践.
是的,由程序员(或系统集成商)来决定.
决定没有任何"最佳实践"规则.想一想:
如果在将始终需要实例化时将bean声明为懒惰初始化,则可能会使启动过程变慢.
如果在不总是需要时将bean声明为急切初始化,则会使启动过程变慢,并可能使用更多内存.在最坏的情况下,创建不必要的bean甚至可能导致启动失败.
简而言之,您需要了解您的应用程序.
| 归档时间: |
|
| 查看次数: |
11898 次 |
| 最近记录: |