Comment instancier printemps haricots contrôlés au moment de l'exécution?

J'ai collé avec un simple de la plaine de java pour le printemps. Demande a un "Conteneur" de l'objet qui instancie ses parties lors de l'exécution. Laissez-moi vous expliquer avec le code:

public class Container {
    private List<RuntimeBean> runtimeBeans = new ArrayList<RuntimeBean>();

    public void load() {
        //repeated several times depending on external data/environment
        RuntimeBean beanRuntime = createRuntimeBean();
        runtimeBeans.add(beanRuntime);
    }

    public RuntimeBean createRuntimeBean() {
         //should create bean which internally can have some 
         //spring annotations or in other words
         //should be managed by spring
    }
}

En gros, lors du chargement du conteneur demande à un système externe à lui fournir des informations sur le nombre et la configuration de chaque RuntimeBean et puis c'est de créer les haricots selon les spec.

Le problème est: quand on n'en ressort

ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfiguration.class);
Container container = (Container) context.getBean("container");

notre objet est entièrement configuré et avoir toutes les dépendances injecté. Mais dans mon cas, j'ai pour instancier des objets, qui doit également l'injection de dépendance après j'exécute la méthode load ().
Comment puis-je y parvenir?

Je suis à l'aide de java à base de config. J'ai déjà essayé de faire une usine pour RuntimeBeans:

public class BeanRuntimeFactory {

    @Bean
    public RuntimeBean createRuntimeBean() {
        return new RuntimeBean();
    }
}

attend @Bean pour travailler dans de soi-disant 'lite' mode. http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Bean.html Malheureusement, je n'ai trouvé aucune différence avec simplement faire de nouvelles RuntimeBean();
Voici un post avec un problème similaire: Comment obtenir des haricots créé par l'interface factorybean printemps-ils gérés?

Il est également http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/annotation/Configurable.html mais il ressemble à un marteau dans mon cas.

J'ai aussi essayé ApplicationContext.getBean("runtimeBean", args) où runtimeBean a un "Prototype", mais getBean est un affreux solution.

Upd1.
Pour être plus concret, je suis en train de revoir cette classe:
https://github.com/apache/lucene-solr/blob/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@see #méthode load() et de trouver "retour créer(cd, false);"

Upd2.
J'ai trouvé très intéressant appelé "méthode de recherche injection" au printemps de la documentation:
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-lookup-method-injection

Et également un intéressant jira billet https://jira.spring.io/browse/SPR-5192 où Phil Webb dit https://jira.spring.io/browse/SPR-5192?focusedCommentId=86051&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-86051 que javax.injecter.Le fournisseur doit être utilisée ici (ça me rappelle Guice).

Upd3.
Il est également http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/config/ServiceLocatorFactoryBean.html

Upd4.
Le problème avec tous ces "recherche" méthodes est qu'elles ne prennent pas en charge la transmission des arguments.. j'ai aussi besoin de passer des arguments comme je le ferais avec applicationContext.getBean("runtimeBean", arg1, arg2). Regarde comme il a été fixé à un certain point avec https://jira.spring.io/browse/SPR-7431

Upd5. Google Guice ont une fonction propre pour qu'il appelle AssistedInject. https://github.com/google/guice/wiki/AssistedInject

Si vous êtes l'instanciation de l'objet avec l'opérateur new et un constructeur, ce n'est pas un Printemps de Haricots et donc ses pas admissibles pour les DI.
Pourriez-vous expliquer davantage sur ce que vous aimeriez faire?
Pas vrai si l'objet est renvoyé par l'intermédiaire d'un bien intercepté @Bean méthode, par exemple sur une classe de configuration. Cela sonne un peu comme un XY problème, cependant, et quelque chose comme le Printemps Nuage des Connecteurs peut être une meilleure option.
D'accord, Java Configuration nécessite l'opérateur new. J'ai été plus se référant à la Container classe et de son utilisation de new. Cela ne va pas voler avec le Printemps.
Vous êtes tous de droite, ma question est comment la refonte du code pour le faire fonctionner. Ce que je voudrais faire? J'aimerais en quelque sorte redisign le code de définir exécution des haricots dans de configuration (mais comment faire si je ne sais même pas le nombre et les propriétés d'un haricots) ou d'avoir une usine qui pourrait créer les fèves au moment de l'exécution avec le fait de remplir le printemps de tissage... en Fait, je ne sais pas, j'ai besoin de quelqu'un pour lui expliquer comment faire les choses.

OriginalL'auteur Vadim Kirilchuk | 2015-01-07