А можно упростить XML файл конфигураци Spring?

207
02 марта 2017, 23:19

Ну я сразу скажу, что только начинаю изучать Spring, так что не судите очень строго. Поймал себя на том, что пишу в файле конфигурации одно и то же.

<bean id="sorttask"
        class="Arhitecture.Sort.Sort_Task"
        factory-method="getTaskInstance" />
<bean id="timer"
      class="Arhitecture.ClockWork"
      scope="prototype"/>

<bean id="bubblesort"
      class="Solutions.Bubble_Sort">
    <constructor-arg ref="sorttask"/>
</bean>
<bean id="bubbleclock"
      class="Arhitecture.ClockWork"/>
<bean id="bubblesortwrapper"
      class="Arhitecture.Sort.Sort_SolutionWrapper">
    <constructor-arg index="0" ref="bubblesort"/>
    <constructor-arg index="1" ref="bubbleclock"/>
</bean>
<!--Feel like doing the same thing-->
<!--Need to find a way like <context:component-scan> and for each solution bean do new wrapper (solution, timer) -->

<bean id="mergesort"
      class="Solutions.Sort_by_Merge">>
    <constructor-arg ref="sorttask"/>
</bean>
<bean id="mergeclock"
      class="Arhitecture.ClockWork"/>
<bean id="mergesortwrapper"
      class="Arhitecture.Sort.Sort_SolutionWrapper">
    <constructor-arg index="0" ref="mergesort"/>
    <constructor-arg index="1" ref="mergeclock"/>
</bean>


<aop:config>
     <aop:pointcut id="runBubble" expression="execution(* Solutions.Bubble_Sort.run(..))"/>
     <aop:aspect ref="bubbleclock">
         <aop:before pointcut-ref="runBubble" method="clockStart"/>
         <aop:after  pointcut-ref="runBubble" method="clockEnd"/>
     </aop:aspect>
    <aop:aspect ref="bubblesortwrapper">
        <aop:after pointcut-ref="runBubble" method="setCorrectness"/>
    </aop:aspect>
</aop:config>

В конфигурации аспекта придется добавлять те же строки для других id. Чтобы не повторяться, в голову приходит использовать <context:component-scan base-package="Solutions"/>, но я не придумал как создать для каждого отсканеного bean новый wrapper. Подскажите, пожалуйста где искать решение. Потом можно получить ссылки на все компоненты класса SolutionWrapper из объекта контекста, это я разобрался как сделать.

READ ALSO
Передача файлов и текстовых данных Java

Передача файлов и текстовых данных Java

Подскажите пожалуйстаСделал загрузку файла при помощи AJAX, плагином для JQuery

275
Чтение файла с бинарными данными в текстовом виде

Чтение файла с бинарными данными в текстовом виде

Добрый деньУ меня есть файл, который я храню в ресурсах приложения, а именно в raw

296
Экранирование полей JSON

Экранирование полей JSON

Есть JSON со сложной структурой, у которого в значении поля есть символ кавычек или другой спецсимвол

471
вопрос по android разработке [требует правки]

вопрос по android разработке [требует правки]

Пишу android приложение по замене фона фотоВ нем должен быть магазин фонов, которые можно загрузить с сервера

263