java - Spring 3.0 禁用@Inject注解处理

标签 java spring cdi

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

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

@Inject
private Conversation conversation;

spring 尝试自动连接明显失败的对话。

最佳答案

在尝试混合 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 处理。

关于java - Spring 3.0 禁用@Inject注解处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7673856/

相关文章:

java - Tomcat HttpServlet 的 ClassNotFoundException

java - 使用php和java进行密码加密

spring - 在 Spring 中使用 setAllowedFields() 方法

java - 如何在不发送另一个身份验证请求的情况下保持来自跨源(CORS)Spring security的登录 session

java - 为什么 Controller 需要在绑定(bind)错误上添加模型

java - 由 Observable.defer() 创建的 Observable 上的 retry() 会触发一个新的 Observable 吗?

spring - 第二次注册实体管理器 (WARN : HHH000436: Entity manager factory name (empsys) is already registered.)

servlets - @SessionScoped CDI bean 注入(inject)时是不同的实例

java - beans xml是如何合并的?

spring - Spring和javax.enterprise.inject有什么关系?