簡體   English   中英

自動裝配同一類的兩個不同的bean

[英]Autowiring two different beans of same class

我有一個包裝連接池的類,該類從spring配置獲取其連接細節,如下所示:

    <bean id="jedisConnector" class="com.legolas.jedis.JedisConnector" init-method="init" destroy-method="destroy">
        <property name="host" value="${jedis.host}" />
        <property name="port" value="${jedis.port}" />
    </bean>

此bean稍后在服務中使用,並使用@Autowire注釋自動裝配。

我的問題是,我如何復制這個bean並給它不同的連接細節,然后@Autowire它在服務中。 意思除了上面我還會:

    <bean id="jedisConnectorPOD" class="com.legolas.jedis.JedisConnector" init-method="init" destroy-method="destroy">
        <property name="host" value="${jedis.pod.host}" />
        <property name="port" value="${jedis.pod.port}" />
    </bean>

並在服務中:

@Autowired //bean of id jedisConnector
JedisConnector beanA;

@Autowired //bean of id jedisConnectorPOD
JedisConnector beanB;
@Autowired
@Qualifier("jedisConnector")
JedisConnector beanA;

@Autowired
@Qualifier("jedisConnectorPOD")
JedisConnector beanB;

您可以將@Autowired@Qualifier結合使用,但在這種情況下,而不是@Autowired ,我建議使用@Resource

@Resource(name="jedisConnector")
JedisConnector beanA;

@Resource(name="jedisConnectorPOD")
JedisConnector beanB;

甚至更簡單:

@Resource
JedisConnector jedisConnector;

@Resource
JedisConnector jedisConnectorPOD;

暫無
暫無

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

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