【问题标题】:Spring injection - custom annotation to initialise classesSpring 注入 - 用于初始化类的自定义注解
【发布时间】:2015-04-24 09:39:29
【问题描述】:

目前我需要为所有类创建 bean(在我的 selenium/jbehave 框架中保存步骤定义)。如果我不这样做,测试步骤将报告为待处理(因此基本上需要初始化步骤类)。

bean.xml:

    <bean id="one" class="com.test.automation.steps.OneSteps">
    </bean>

    <bean id="two" class="com.test.automation.steps.TwoSteps">
    </bean>

    <bean id="three" class="com.test.automation.steps.ThreeSteps">
    </bean>

    <bean id="four" class="com.test.automation.steps.FourSteps">
    </bean>

我认为应该有一种更简单的方法来做到这一点,而不是为每个类创建 bean,我应该能够创建一个自定义注释,然后标记每个类。

这是一种可能性吗?举个例子不胜感激。

谢谢

【问题讨论】:

  • 你的意思是喜欢使用@Component注解?
  • 我相信是这样,但不确定如何实现这一点。听起来挺简单的,我只想初始化steps包下的所有类。

标签: java spring dependency-injection annotations jbehave


【解决方案1】:

你可以使用 BeanFactory 来创建实例

来自文档

BeanFactory 是实例化、配置和管理大量 bean 的实际容器。这些 bean 通常相互协作,因此它们之间存在依赖关系。这些依赖关系反映在 BeanFactory 使用的配置数据中(尽管某些依赖关系可能不作为配置数据可见,而是运行时 bean 之间的编程交互的函数)。

一个 BeanFactory 由接口 org.springframework.beans.factory.BeanFactory 表示,有多个实现。最常用的简单 BeanFactory 实现是 org.springframework.beans.factory.xml.XmlBeanFactory。 (这应该提醒一下,ApplicationContexts 是 BeanFactory 的子类,并且大多数用户最终使用 ApplicationContext 的 XML 变体)。

阅读更多 herehere

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    相关资源
    最近更新 更多