为自动检测组件提供范围
工具/原料
1
spring
2
IntelliJ
方法/步骤
1
与Spring管理的组件一样,自动检测组件的默认和最常见的范围是singleton。但是,有时您需要一个可以由@Scope注释指定的不同范围。
2
您可以在注释中提供范围的名称,如以下示例所示:
4
可以使用Spring的元注释方法编写自己的范围注释:例如,自定义注释元注释@Scope('prototype'),可能还声明自定义范围代理模式。
5
要为范围解析提供自定义策略而不是依赖基于注释的方法,您可以实现该 ScopeMetadataResolver 接口。请确保包含默认的无参数构造函数。然后,您可以在配置扫描程序时提供完全限定的类名。
6
以下注释和bean定义示例显示:
7
使用某些非单例作用域时,可能需要为作用域对象生成代理。这种推理在Scoped Beans中描述为Dependencies。为此,component-scan元素上提供了scoped-proxy属性。三个可能的值是:no,interfaces,和targetClass。
8
例如,以下配置导致标准JDK动态代理:
上一篇:为硬件保留的内存过大的解决方法
下一篇:win10取消为硬件保留的内存