Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo agregar beans usando código en primavera

Cómo agregar beans usando código en primavera

[cita requerida] Generalmente en los ejemplos de struts2+spring, para usar Spring Beans, puede agregar la siguiente configuración en applicationContext.xml

Una vez que se crea una instancia de myAction de struts2.

Una vez que se crea una instancia de myAction de struts2, el SpringBean que contiene también se inyectará automáticamente para poder usar SpringBean.

Pero en algunos casos, usted. Aún necesita llamar a SpringBean a través del código:

1) Para las clases que Spring no crea ni administra, por ejemplo, usa new directamente en el código Java para crear un objeto y desea usarlo en este objeto.

SpringBean; debido a que este objeto no es creado ni administrado por el contenedor Spring, SpringBean no se utilizará

1) El contenedor Spring, por lo que incluso si tiene un método de establecimiento. no se inyectará en el contenedor.

2) Cambie dinámicamente los valores de propiedad en springBean, por ejemplo, debe cambiar el valor del nombre mientras se ejecuta el código. >3) Para aplicaciones independientes [resuelto], defina clases no creadas ni administradas por el contenedor Spring

la clase pública NonSpringClass implementa ServletContextAware {

SpringBean privado springBean;

//Si testGetBean no es creado ni administrado por el contenedor Spring, incluso si tiene un método de establecimiento, el SpringBean del contenedor no se inyectará

public void setSpringBean(SpringBean springBean). {this.springBean=springBean;}// Utilice ApplicationContext para obtener SpringBean del contenedor Spring;

p>

/Spring tiene dos interfaces principales, BeanFactory y ApplicationContext, donde ApplicationContext es una subinterfaz de BeanFactory. ,

// Representan el contenedor Spring, y el contenedor Spring se genera para administrar los beans en la fábrica de Bean.

public NonSpringClass (){/ApplicationContext acx = new ClassPathXmlApplicationContext("applicationContext.xml");

ApplicationContext acx = new FileSystemXmlApplicationContext("src/WEB-INF/applicationContext.xml"); p>

springBean=(SpringBean)acx .getBean("springBean");}}Código para llamar a esta clase:

import com.NonSpringClass;

clase pública TestCode {

private NonSpringClass nonSpringClass;

// Por lo tanto, nonSpringClass contendrá el springBean creado por el contenedor Spring}}