【问题标题】:How to reuse Spring XML fragments如何重用 Spring XML 片段
【发布时间】:2010-11-25 17:08:25
【问题描述】:

我正在开发基于 Spring 的应用程序。 XML 很简单,但包含几个几乎相同的片段。例如,我有 5 个不同的 DAO 对象、2 个队列等。每个 DAO 的配置如下所示:

<bean id="deviceDaoTarget" class="com.mycompany.dao.hibernate.DeviceDAOHibernateImpl"
    autowire="byName" />

<bean id="deviceDAO" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="proxyInterfaces">
        <value>com.mycompany.dao.DeviceDAO</value>
    </property>
    <property name="interceptorNames">
        <list>
            <value>hibernateInterceptor</value>
            <value>deviceDaoTarget</value>
        </list>
    </property>
</bean>

我很乐意使用某种带参数的导入。例如,我想像这样创建 DAO 的参数化配置:

<bean id="${dao.target}" class="${dao.class}"
    autowire="byName" />

<bean id="deviceDAO" class="org.springframework.aop.framework.ProxyFactoryBean">
    <property name="proxyInterfaces">
        <value>${dao.interface}</value>
    </property>
    <property name="interceptorNames">
        <list>
            <value>hibernateInterceptor</value>
            <value>${dao.target}</value>
        </list>
    </property>
</bean>

然后用不同的参数多次调用它,例如:

<import resource="spring-dao.xml">
    <param name="dao.interface">com.mycompany.dao.hibernate.DeviceDAO</param>
    <param name="dao.class">com.mycompany.dao.hibernate.DeviceDAOHibernateImpl</param>
    <param name="dao.target">deviceDaoTarget</param>
</import>

这样的事情可能吗?

【问题讨论】:

    标签: java xml spring


    【解决方案1】:

    您可以使用通用配置定义 &lt;bean id="parentBean" abstract="true" ...&gt;...&lt;/bean&gt;,然后使用该 bean 的特定配置来定义 &lt;bean id="childBean" parent="parentBean" ...&gt;...&lt;/bean&gt;

    【讨论】:

    • 太棒了!谢谢你。我怎么会忘记 bean 的继承?
    猜你喜欢
    • 2011-11-05
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多