Bonjour,

Je désire créer mon propre bean factory pour cela j'ai une classe qui hérite de DefaulListableBeanFactory.
J'arrive à récupérer les types et les données des "property" sans problème par contre j'ai un souci avec les paramètres de constructeurs.
Je les récupère mais je n'arrive pas à trouver leur type ...

Je travaille en Spring 2.0.0, j'ai la solution à mon problème en 2.5.2 (getConvertedValue) mais je ne choisis pas la version de Spring utilisé (hélas).

Voici une version très épurée de ce que je tente de faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
public class MyBeanFactory extends DefaultListableBeanFactory {
    @Override
    protected Object createBean(String beanName, RootBeanDefinition rdb, Object[] unknown) {
        Object ret = super.createBean(beanName, rdb, unknown);
 
        for (Object obj : arg1.getConstructorArgumentValues().getIndexedArgumentVales().entrySet()) {
            Map.Entry<?, ?> entry = (Map.Entry<?,?>)obj;
 
            // Recherche type de la value
            Type typeKey = ???;
            Type typeValue = ???;
 
            storeKey(entry.getKey(), typeKey);
            storeValue(entry.getValue(), typeValue);
        }
 
        return ret;
    }
}
(Le code n'est peut être pas complétement juste mais ce n'est pas mon vrai code juste une version que je viens de taper)
Avant que quelqu'un ne le fasse je désire le type utilisé par le constructeur pas celui renvoyé par Spring qui est souvent String.
La plupart du temps entry.getKey().getClass() = java.lang.String
Je veux savoir ou Spring trouve le type pour le convertir ensuite.

J'ai essayé d'utiliser
Code : Sélectionner tout - Visualiser dans une fenêtre à part
BeanWrapper beanWrapper = autowireConstructor(beanName, rdb);
mais ça ne me donne pas grand chose d'interressant dans mon cas (ou j'ai mal cherché).

HELP !!! :p

Si vous avez une solution ou si quelqu'un a déjà fait un truc comme ça je veux bien de l'aide.

Merci.