簡體   English   中英

具有相同 bean 和不同屬性的 Spring 配置文件

[英]Spring config file with same bean and different properties

我有一個用於加載緩存的 bean。 我從 Spring 注入中給出了緩存的密鑰。 我只是為屬性復制同一個 bean,Spring 正在創建同一個 bean 的多個實例。 無論如何我可以使用bean的一個實例嗎?

<aop:config>
    <aop:pointcut id="terminalPointcut"
        expression="execution(* *..TerminalDao.getTerminals())" />
    <aop:pointcut id="miscPointcut"
        expression="execution(* *..MiscDao.getMiscTableList(*))" />
    <aop:pointcut id="errorPointcut"
        expression="execution(* *..ErrorDao.getErrorList())" />
    <aop:advisor id="terminalCacheLoaderAdvisor"
        advice-ref="terminalCacheLoaderAdvice" pointcut-ref="terminalPointcut" />
    <aop:advisor id="miscCacheLoaderAdvisor"
        advice-ref="miscCacheLoaderAdvice" pointcut-ref="miscPointcut" />
    <aop:advisor id="errorCdDetailCacheLoaderAdvisor"
        advice-ref="errorCacheLoaderAdvice" pointcut-ref="errorPointcut" />
</aop:config>

<bean id="miscCacheLoaderAdvice" class="com.temp.ehCache.interceptor.CacheLoader">
        <property name="cacheManager" ref="simpleCacheManager" />   
        <property name="cache_data_key" value="MISC_DATA_KEY" />
</bean>

<bean id="errorCacheLoaderAdvice" class="com.temp.ehCache.interceptor.CacheLoader">
        <property name="cacheManager" ref="simpleCacheManager" />   
        <property name="cache_data_key" value="ERROR_DATA_KEY" />
</bean> 
<bean id="miscCacheLoaderAdvice" class="com.temp.ehCache.interceptor.CacheLoader">
        <property name="cacheManager" ref="simpleCacheManager" />   
        <property name="cache_data_key" value="MISC_DATA_KEY" />
</bean>

<bean id="errorCacheLoaderAdvice" class="com.temp.ehCache.interceptor.CacheLoader">
        <property name="cacheManager" ref="simpleCacheManager" />   
        <property name="cache_data_key" value="ERROR_DATA_KEY" />
</bean> 

您顯然需要兩次具有兩種不同配置的同一個 bean。 因此,即使可以將它組合在一個 bean 中,這也將是一件非常痛苦的事情(例如,您可以使用 ThreadLocals 根據需要設置屬性等)

我會說改變你的設計。 如果com.temp.ehCache.interceptor.CacheLoader很重,請嘗試將重的內容提取到可由CacheLoader bean 使用的委托 bean。 保持CacheLoader bean 盡可能小,並且擁有多個它們不會成為問題(只要您不使用按類型自動裝配)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM