Spring 3.0禁用@Inject注释处理

时间:2011-10-06 11:50:44

标签: java spring cdi

有没有办法禁用spring 3.0的@Inject注释处理?

我正在尝试将CDI @Conversation范围与spring一起使用,但是当涉及到

@Inject
private Conversation conversation;
春天试图自动对话显然失败了。

2 个答案:

答案 0 :(得分:2)

在尝试混合Spring 3.x和CDI注释时遇到了类似的问题。

我找到了一种在非Spring bean中禁用Spring @Inject处理的方法;只需为使用@Named注释的类创建排除过滤器:

@Configuration
@ComponentScan(excludeFilters = {@Filter(Named.class)})
public class SpringConfig
{
}

或禁用默认过滤器,例如:

@Configuration
@ComponentScan(useDefaultFilters = false, includeFilters = {@Filter(Component.class)})
public class SpringConfig
{
}

这是有效的,因为Spring默认设置了javax.inject.Named的包含过滤器来激活JSR-330处理。

答案 1 :(得分:0)

我认为你不能。但春天有自己的对话支持 - 看一下春天的网络流程。