【问题标题】:How To Replace @Resource Annotation with Java 1.4 Compliant Version如何用 Java 1.4 兼容版本替换 @Resource 注解
【发布时间】:2010-06-14 15:25:39
【问题描述】:

我有一个测试类,它有一个用于 setter 的 @Resource 注释,我需要使其符合 Java 1.4,因此显然必须取消注释。我正在使用 Spring。

那么,我将如何替换 @Resource("my.resource") 之类的东西,以便 setter 获得正确的依赖注入?我需要在 xml 文件中制作一个 bean 吗?

我对此很陌生,所以如果我没有提供足够的信息,请告诉我。

【问题讨论】:

    标签: java spring annotations resources java1.4


    【解决方案1】:

    如果您在 Java 1.4 环境中,则不能像您已经正确提到的那样依赖注解。因此,您必须在配置 Spring ApplicationContext 的 XML 文档中声明依赖项和 bean 定义。

    <bean id="myBeanName" class="my.package.MyClass">
       <!-- injects otherBean into propertyName -->
       <property name="propertyName" ref="otherBean" />
    
       <!-- injects propertyValue into otherProperty -->
       <property name="otherProperty" value="propertyValue" />
    
       <!-- injects an instance of an anonymous bean into innerBean -->
       <property name="innerBean">
           <bean class="my.package.InnerBean" />
       </property>
    </bean>
    
    <bean id="otherBean" class="my.package.OtherBean" />
    

    【讨论】:

      【解决方案2】:

      考虑xdoclet

      XDoclet 实际上是 Java 5 中注释的前身。它是一个开源代码生成库,通过插入特殊的 Javadoc 标记来实现面向属性的 Java 编程。它带有一个预定义标签库,可简化各种技术的编码:Java EE、Web 服务、Portlet 等。

      【讨论】:

      • 好吧,我确实在 2 年前回答了这个问题。链接还是不错的。此外,当 xdoclet 项目消失(并且链接变坏)时,答案可能变得无关紧要。
      【解决方案3】:

      一个 hacky 方法是实现 ApplicationContextAware 接口,然后在你的类的 setApplicationContext 中使用 ApplicationContext.getBean 获取 bean。

      http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/context/ApplicationContextAware.html

      【讨论】:

        猜你喜欢
        • 2020-10-16
        • 1970-01-01
        • 2012-11-30
        • 2011-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-11
        相关资源
        最近更新 更多