gpt4 book ai didi

spring - WebSphere 7 中使用 Spring(JSR 330 注释)的依赖注入(inject)不起作用

转载 作者:行者123 更新时间:2023-12-04 05:12:40 25 4
gpt4 key购买 nike

我有一个使用 Java 6、Spring Framework 3.1.2 和 Mule-ESB 3.3.0 以及与此问题无关的其他库构建的企业应用程序。

我们的 bean 和服务都用 @Named 声明和 @Inject JSR-330 注释,分别用于自动组件扫描和依赖注入(inject)(没有 EJB,只有服务 bean)。当部署到 JBoss 4.2.3(我们的测试环境)中时,一切正常。但是,当部署到 WebSphere 7 中时,JSR-330 注释似乎不起作用。标有 @Named 的 bean 根本没有检测到。

我可以保证一切都配置正确(因为它在 JBoss 中工作)。具体来说,<context:component-scan />base-package属性正确定义和 scope-resolver属性正确配置为使用 Jsr330ScopeMetadataResolver (我们也试过没有它)。

我知道 WebSphere 7 (7.0.0.23) 可能不支持这种注释。我还没有用 @Component 测试它和 @Autowired Spring 等效物。不幸的是,我们非常希望使用 JSR 330 注释,这样我们的类就不会直接依赖于 Spring,即使我们在底层使用了 Spring Framework。

尽管如此,尽管我花了一整天的时间寻找关于 WebSphere 7 不支持 JSR 330 注释的明确声明,但到目前为止我还没有找到任何东西。

此外,我不明白为什么它不起作用,因为我假设 Spring Framework 是通过 <context:component-scan /> 完成所有工作的框架。 application-context.xml 中的指令文件。

任何人都可以为这个问题带来一些启示吗?

有没有办法通过 WebSphere 7 中的注释激活依赖注入(inject)?

如果我从 JSR 330 @Named 切换回来/@Inject Spring 自己的注解 @Component@Autowired它有可能奏效吗?

在绝望的尝试中,我可以扩展Spring的ComponentScanBeanDefinitionParser吗?所以即使在 WebSphere 7 中它也会检测到 JSR 330 注释?

如果没有任何效果,我最终将退回到纯 XML 配置。然而,这是非常不可取的,因为将在 XML 中手动配置数百个 bean。

最佳答案

WebSphere 8 似乎是正确的版本;它支持 EE6(WebSphere 7 是 EE5),而后者又包含 CDI 1.0(因此是 JSR 299)。

以下是来自 DeveloperWorks 的片段总结了 WebSphere 版本、JSR 299 和 JSR 300 之间的关系

Dependency injection is a technology that has surfaced in various implementations many times before making it into the Java EE world. The Spring Framework and the Google Guice library are popular implementations. In JSR 330, an attempt was made to include these capabilities into the J2SE platform. JSR 299 is a specification that used the APIs defined in JSR 330 and added more capabilities to support Java EE needs. IBM WebSphere Application Server V8 and V8.5 (non-Liberty profiles) are fully compliant Java EE 6 containers and implement JSR 299.

关于spring - WebSphere 7 中使用 Spring(JSR 330 注释)的依赖注入(inject)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14708725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com