Investigamos por todo el mundo on line para así brindarte la solución para tu problema, en caso de alguna duda puedes dejarnos un comentario y respondemos sin falta, porque estamos para servirte.
Solución:
Si te entiendo bien, entonces la respuesta correcta es usar getBean(String beanName, Object... args)
método, que pasará argumentos al bean. Puedo mostrarle cómo se hace para una configuración basada en Java, pero tendrá que averiguar cómo se hace para una configuración basada en XML.
@Configuration
public class ApplicationConfiguration
@Bean
@Scope("prototype") // As we want to create several beans with different args, right?
String hello(String name)
return "Hello, " + name;
// and later in your application
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfiguration.class);
String helloCat = (String) context.getBean("hello", "Cat");
String helloDog = (String) context.getBean("hello", "Dog");
¿Es esto lo que estás buscando?
ACTUALIZAR
Esta respuesta recibe demasiados votos a favor y nadie mira mi comentario. Aunque es una solución al problema, se considera como un Spring anti-patrón ¡y no deberías usarlo! Hay varias formas diferentes de hacer las cosas bien usando fábrica, método de búsqueda, etc.
Utilice la siguiente publicación SO como punto de referencia:
- ¿Cómo crear instancias de beans administrados por Spring en tiempo de ejecución?
Por favor, eche un vistazo a la inyección de Constructor.
Además, eche un vistazo a IntializingBean y BeanPostProcessor para conocer otras intercepciones del ciclo de vida de un springbean.
Creo que las respuestas propuestas anteriormente para usar la inyección de constructor/inyección de setter no funcionan perfectamente para el caso de uso que está buscando. La primavera tarda más o menos static valores de argumento para constructores/establecedores. No veo una forma de pasar valores dinámicamente para obtener un Bean de Spring Container. Sin embargo, si desea obtener instancias de User_Imple dinámicamente, recomendaría usar una clase de fábrica User_Imple_Factory
public class User_Imple_factory
private static ApplicationContext context =new ClassPathXmlApplicationContext("/bean.xml");
public User_Imple createUserImple(int id)
User user = context.getBean("User");
return new User_Imple(id, user);