2009-05-20 1 views
4

Ich möchte eine Klasse, die ContextLoader/ContextLoaderListener/ContextLoadServlet von spring entspricht. Diese Klassen werden aufgerufen, wenn der Anwendungsserver initialisiert und den konfigurierten Kontext in den Speicher verschiebt.Gibt es eine Equallant zu ContextLoader von Spring für eine Nicht-Webanwendung

Was ist die Analogie von dieser für eine Anwendung, die kein Container hat, um es zu wickeln?

Dies würde mehrere Instanziierungen ausschließen, einen einheitlichen Abrufort bereitstellen und auch keine doppelt geprüfte Sperrlahmheit erleiden.

Antwort

1

Der Klassiker ist ClassPathXmlApplicationContext:

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
import org.springframework.scripting.Messenger; 

public final class Boot { 

    public static void main(final String[] args) throws Exception { 
     ApplicationContext ctx = new ClassPathXmlApplicationContext("scripting/beans.xml"); 
     Messenger messenger = (Messenger) ctx.getBean("messenger"); 
     System.out.println(messenger); 
    } 
} 

mehr here sehen kann

+0

AbstractApplicationContext bietet wirklich nicht viel von allem an, was keine Überschreibung einer Funktion in ConfigurableApplicationContext oder ApplicationContext ist. Im Allgemeinen hat es keinen Sinn, ctx weder als die vollständige konkrete Klasse noch als eine der Schnittstellen zu deklarieren. Außerdem müssen Sie den String-Array-Konstruktor nicht verwenden, wenn Sie nur eine Konfigurationsdatei übergeben. – Jherico

+0

Ich nahm das Code-Snippet aus der Dokumentation (in meiner Antwort). Spring ApplicationContecxt verfügt über mehr als eine BeanFactory - automatische BeanPostProcessor- und BeanFactoryPostProcessor-Registrierung, bequemen MessageSource-Zugriff (für i18n) und ApplicationEvent-Veröffentlichung. In der Dokumentation heißt es offiziell: "Verwenden Sie einen ApplicationContext, es sei denn, Sie haben einen wirklich guten Grund, dies nicht zu tun". Mehr unter http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#context-introduction-ctx-vs-beanfactory –

+0

Ich habe das Codebeispiel –

Verwandte Themen