相当于Spring中CDI的@Inject @Active
Equivalent to @Inject @Active of CDI in Spring
使用 CDI,您可以执行以下操作:
@Inject @Active
UserFactory userFactory;
代码的意思是:我想要一个 returns 只有活跃用户的 userFactory。
Spring的等价方式是什么?我做了我的研究,但我找到的最近的是 Spring 个人资料。看起来像:
@Autowired @Profiles("active")
UserFactory userFactory;
问题是只能同时激活一个配置文件,对吗?如果是这样,它在我看来更像是 CDI 中的@Alternative,它并没有解决我提到的问题。
Spring 也可以使用限定符(用 @Qualifier
定义)。可能 @Active
已经是 @Qualifier
,因此可用于确定使用哪一个。
@Component
@Active
public ActiveUserFactory implements UserFactory { ... }
然后在你想使用这个的地方再次添加@Active
限定符。
@Autowired
@Active
private UserFactory userFactory;
如果您不想创建注释,您也可以使用普通的 @Qualifer("active")
。
如需更详尽的解释,您可能需要查看 the reference guide。
使用 CDI,您可以执行以下操作:
@Inject @Active
UserFactory userFactory;
代码的意思是:我想要一个 returns 只有活跃用户的 userFactory。
Spring的等价方式是什么?我做了我的研究,但我找到的最近的是 Spring 个人资料。看起来像:
@Autowired @Profiles("active")
UserFactory userFactory;
问题是只能同时激活一个配置文件,对吗?如果是这样,它在我看来更像是 CDI 中的@Alternative,它并没有解决我提到的问题。
Spring 也可以使用限定符(用 @Qualifier
定义)。可能 @Active
已经是 @Qualifier
,因此可用于确定使用哪一个。
@Component
@Active
public ActiveUserFactory implements UserFactory { ... }
然后在你想使用这个的地方再次添加@Active
限定符。
@Autowired
@Active
private UserFactory userFactory;
如果您不想创建注释,您也可以使用普通的 @Qualifer("active")
。
如需更详尽的解释,您可能需要查看 the reference guide。