encore un petit problème en comprenant "comment fonctionne la tapisserie".Tapisserie: Injecter à l'exécution
J'ai une composante de tapisserie (dans ce cas, un codeur):
public class EditionEncoder implements ValueEncoder<Edition>, ValueEncoderFactory<Edition> {
@Inject
private IEditionManager editionDao;
public EditionEncoder(IEditionManager editionDao) {
this.editionManager = editionDao;
}
@Override
public String toClient(Edition value) {
if(value == null) {
return "";
}
return value.getName();
}
@Override
public Edition toValue(String clientValue) {
if(clientValue.equals("")) {
return null;
}
return editionManager.getEditionByName(clientValue);
}
@Override
public ValueEncoder<Edition> create(Class<Edition> type) {
return this;
}
}
Injecter le gestionnaire ne fonctionne pas, parce que le codeur est créé dans une page comme ça:
public void create() {
editionEncoder = new EditionEncoder();
}
casued par cela, je suis obligé d'utiliser cette solution laide:
@Inject
private IEditionManager editionmanager;
editionEncoder = new EditionEncoder(editionManager);
y at-il une meilleure façon pour injecter des composants pendant l'exécution ou y a-t-il une meilleure solution en général pour cela?
Merci pour votre aide à l'avance,
yip, c'est clair pour moi. Mais par exemple Au printemps, il est possible de "forcer" le mécanisme d'injection avec des objets instanciés manuellement. Je suis à la recherche d'une manière similaire., Je ne suis pas comme les arguments constructeur. – user3066027