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
(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)Code:
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; } }
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
mais ça ne me donne pas grand chose d'interressant dans mon cas (ou j'ai mal cherché).Code:BeanWrapper beanWrapper = autowireConstructor(beanName, rdb);
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.