Définir des beans configurables par l'application
Bonjour,
je cherche, pour des raisons de cohérence, à faire rentrer ce bout de code sous forme d'une définition Spring:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
@Override
public <CP extends AbstractControlPoint<?, ?>, N extends AbstractCurve<?, ?>> Operation[] getOperations(
N element, CP controlPoint, AnimationModel model, SVGController controller) {
java.util.List<Operation> operations = new ArrayList<Operation>();
operations.add(new FrontAddControlPoint((FrontCurve)element, (FrontControlPoint) controlPoint, controller));
operations.add(new FrontDeleteFront((FrontCurve)element, model));
operations.add(new FrontCycleCurveType((FrontCurve)element, model, true));
operations.add(new FrontCycleCurveType((FrontCurve)element, model, false));
operations.add(new FrontSwitchCurveSide((FrontCurve)element, model));
return operations.toArray(new Operation[operations.size()]);
} |
L'idée étant d'avoir à la fin un truc du style
Code:
1 2 3 4 5 6
|
@Override
public <CP extends AbstractControlPoint<?, ?>, N extends AbstractCurve<?, ?>> Collection<Operation> getOperations(
N element, CP controlPoint, AnimationModel model, SVGController controller) {
return applicationContext.getBeans("frontOperations");
) |
et avoir un truc dans le xml du style:
Code:
1 2 3 4 5 6
| <util:list id="frontOperations" scope="prototype">
<bean class="bla.bla.FrontAddControlPoint" element="${curve}" controlPoint="${point}" controller="{controller}"/>
<bean class="bla.bla.FrontDeleteFront" element="${curve}" model="#{model}"/>
<bean class="bla.bla.FrontCycleCurveType" element="${curve}" model="#{model}" up="true"/>
<bean class="bla.bla.FrontCycleCurveType" element="${curve}" model="#{model}" up="down"/>
</util:list> |
Evidement, ce n'est pas valable en l'état. Donc la question que je me pose, comment donne à spring des paramètres dynamique, c'est à dire des bean, non gérés par spring, à injecter dans l'appel en cours à applicationContext.getBean?
Merci :)