多语言展示
当前在线:131今日阅读:113今日分享:31

为自动检测组件提供范围

为自动检测组件提供范围
工具/原料
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动态代理:

推荐信息