Saltar al contenido

contexto de aplicación. ¿Qué es esto?

Nuestros mejores programadores agotaron sus provisiones de café, por su búsqueda todo el tiempo por la resolución, hasta que Celeste halló el hallazgo en GitHub así que en este momento la compartimos contigo.

Solución:

@feak da una respuesta directa sobre el significado de ApplicationContext en términos de primavera. En definitiva, es un objeto que carga la configuración (normalmente un archivo XML basado en anotaciones) y luego Spring comenzará a administrar los beans y sus beneficios:

  • Frijoles declarados en paquete
  • Frijoles declarados por anotaciones
  • Autowiring de constructores y métodos
  • inyección de frijol
  • Configuración, carga de archivos .properties y .yaml
  • etc.

Para iniciar un contexto de aplicación, puede usar uno de los siguientes:

  • Cargue manualmente el contexto de la aplicación al comienzo de su aplicación. Esto se hace con fines de muestra o en aplicaciones independientes:

    public class Foo 
        public static void main(String[] args) 
            ApplicationContext context =
                new ClassPathXmlApplicationContext("path/to/applicationContext.xml");
            //use the context as you wish...
        
    
    
  • En el caso de aplicaciones web Java que utilicen Spring MVC, el DispatchServlet cargará el contexto de la aplicación por ti, así que solo tienes que crear un springapp-servlet.xml archivo en la carpeta WEB-INF de la aplicación.

Tenga en cuenta que un contexto de aplicación está asociado a una única configuración (basado en XML o no). Período.


Después de comprender esto, también podría comprender que puede tener más de un contexto de aplicación por aplicación. Esto es, tener dos o más ApplicationContexts en la misma aplicación. Desde el último ejemplo en la aplicación de la consola, esto es fácil de comprobar:

public class Foo 
    public static void main(String[] args) 
        ApplicationContext context =
            new ClassPathXmlApplicationContext("path/to/applicationContext.xml");
        ApplicationContext context2 =
            new ClassPathXmlApplicationContext("path/to/applicationContext.xml");
        //use the context as you wish...
    

Tenga en cuenta que tenemos dos contextos de aplicación que utilizan la misma configuración XML. ¿Puedes hacer esto? Sí, en realidad lo estás viendo aquí. ¿Cuál es la diferencia, entonces? los principal la diferencia es que los ámbitos singleton de Spring beans son singleton por contexto de aplicaciónesto significa que al recuperar un Bar bean que está configurado en el archivo applicationContext.xml de contextno será lo mismo como recuperarlo de context2pero varias recuperaciones de context volverá igual Bar instancia de frijol.

¿Se considera esto una buena o mala práctica? Ninguno de los dosdependerá del problema a resolver (en el caso del último ejemplo, diría que es un malo práctica). La mayoría de la gente recomendaría tener todos sus beans configurados en un solo lugar (a través de XML u otro) y cargados por un solo contexto de aplicación.

Si posees algún reparo o disposición de arreglar nuestro ensayo te evocamos realizar un comentario y con deseo lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *