Возможна ли частичная автопроволочная фасоль? - PullRequest
2 голосов
/ 28 октября 2008

Я хочу частично автоматически передать bean-компонент - то есть, я хочу, чтобы некоторые аргументы были автоматически связаны, а другие - явно установлены. Например:

public MyClient (Service SVC, логическое b)

В случае этого конструктора я хотел бы указать в моем xml значение для b, но svc autowired. Это возможно?

Спасибо, Lowell

Ответы [ 2 ]

4 голосов
/ 28 октября 2008

Я не думаю, что это возможно с конструкторами, но с явными установщиками это, безусловно, так. Просто аннотируйте те, которые вы хотите, автоматически связанными с @Autowired, и установите другие в вашем конфигурационном файле

Что-то вроде:

public MyClient() {}

@Autowired
public setService (Service svc) {...}

public setBoolean (boolean b) {...}

, а затем в вашей конфигурации

<context:annotation-config />

<bean id="service">...</bean>

<bean id="yourbean" class="MyClient">
    <property name="b" value="true"/>
</bean>
3 голосов
/ 29 октября 2008

Я понял это сам, ура!

То, как я это сделал, заключалось в следующем:

<bean class="MyClient" autowire="constructor">
   <constructor-arg index="1">...</constructor-arg>
<bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...