У меня есть бин, в который я хотел внедрить массив ресурсов .
org.springframework.core.io.Resource[]
На самом деле, массив InputStreamSource был достаточно хорош. Я хотел, чтобы мое определение бина выглядело примерно так:
<bean id="..." class="com.usta.SomeClass">
<constructor-arg value="classpath:somedir/*.xml"/>
</bean>
где был мой конструктор:
public SomeClass(InputStreamSource[] sources);
Так как это не сработает, я неохотно выбрал
public SomeClass(InputStreamSource[] sources, ResourcePatternResolver resolver);
Но как теперь я могу внедрить ApplicationContext (который является ResourcePatternResolver ) в этот бин с помощью инжектора конструктора? Или я могу сказать только auto-wire этот аргумент конструктора?
Я знаю, что Setter Injection (с ResourceLoaderAware ) решит эту проблему, но я придерживаюсь Consructor Injection, насколько это возможно.
SomeClass использует Resources некоторая инициализация заранее; с внедрением сеттера мне придется отложить инициализацию и не сможет объявить ряд полей SomeClass final .