2010-02-02 4 views
0

J'ai un bean géré par Spring (Application-scoped, ou un singleton dans le monde de Spring) qui a des propriétés à l'intérieur qui sont une liste d'objets.Spring - configuration d'une classe pas comme un bean si

Je voudrais configurer ces objets en XML si cela est possible sans trop d'efforts. Si je les déclare comme un haricot, alors je peux les injecter, mais je ne veux pas qu'ils soient des haricots gérés par Spring, la configuration est plus longue, et il y a un surcoût supplémentaire associé à leur fabrication (mémoire + cycles du processeur).

Dans JBoss Seam, jetée, je peux instancier les composants comme ceci:

<New class="" id=""> 
    <Arg/> 
    <Arg> 
    <New class=""/> 
    </Arg> 
</New> 

Dans JBoss Seam:

<mypackage:class-name id="someComponent"> 
    <component:property name="items"> 
    <mypackage:other-class-name title="The Great Gatsby" pages="201"/> 
    </...> 
</...> 

Je veux l'élément principal à un composant/haricot, mais pas composants internes. Je veux juste que ceux-ci soient anonymes, aucun cycle de vie ne leur est associé, hormis le cycle de vie hérité de leur parent.

Les éléments internes seraient mypackage: other-class-name et New dans l'élément Arg.

Merci,

Walter

+1

À qui pensez-vous traiter le code XML si ce n'est Spring? – danben

+0

Veuillez donner un court exemple de ce que vous voulez faire – skaffman

+0

Combien d'objets y a-t-il? Pour moi, il semble qu'il y en ait au moins deux ou trois milliers, de sorte que les haricots (intérieurs) seraient vraiment des frais généraux que n'importe qui percevra. –

Répondre

2

Je ne pense pas qu'il est possible. Peut-être que ce dont vous avez besoin sont inner beans definitions.

<bean id="outer" class="..."> 
<!-- instead of using a reference to a target bean, simply define the target bean inline --> 
    <property name="target"> 
    <bean class="com.example.Person"> <!-- this is the inner bean --> 
     <property name="name" value="Fiona Apple"/> 
     <property name="age" value="25"/> 
    </bean> 
    </property> 
</bean> 
+0

C'est la première pensée que j'ai eue. La seule autre chose que je pourrais penser est d'utiliser des valeurs de propriété bien connues pour instancier les bons objets dans le bean. (c'est-à-dire ) Exemple contraint, mais une autre possibilité. – Matt

+0

Ok, je suppose que cela suffira, pas comme simplifié, mais il fait le travail, je suppose. –

Questions connexes