2015-03-20 20 views
7

Czy ktoś mógłby podać przykład aplikacji SpringApplication, która ładuje plik applicationContext.xml?Ładowanie aplikacjicontext.xml przy użyciu SpringApplication

Próbuję przenieść moją aplikację GWT RPC do usługi internetowej RESTful przy użyciu Spring's Example (na bazie Gradle). Mam appContext.xml, ale nie widzę, jak uzyskać SpringApplication, aby go załadować. Ładowanie ręcznie poprzez

ApplicationContext context = new ClassPathXmlApplicationContext(args);

wyników w pustej kontekście. ... i nawet jeśli pracowali byłoby oddzielone od jednej powrócił z

SpringApplication.run(Application.class, args);

czy istnieje sposób, aby uzyskać fasolę zewnętrznych w kontekście aplikacji stworzonej przez SpringApplication.run?

Odpowiedz

8

Możesz użyć @ImportResource, aby zaimportować plik konfiguracyjny XML do aplikacji Spring Boot. Na przykład:

@SpringBootApplication 
@ImportResource("applicationContext.xml") 
public class ExampleApplication { 

    public static void main(String[] args) throws Exception { 
     SpringApplication.run(ExampleApplication.class, args); 
    } 

} 
-1

Dzięki Andy, dzięki temu bardzo zwięzły. Jednak moim głównym problemem okazało się uzyskanie applicationContext.xml w ścieżce klas.

Najwyraźniej umieszczenie plików w src/main/resources jest wymagane, aby wprowadzić je do ścieżki klasy (umieszczając je w słoiku). Próbowałem ustawić CLASSPATH, która została właśnie zignorowana. W powyższym przykładzie obciążenie wydawało się nie działać po cichu. Korzystanie z @ImportResource spowodowało, że przestał działać poprawnie (co pomogło mi wyśledzić prawdziwą przyczynę).

7

Jeśli chcesz użyć pliku z ścieżce klasy, zawsze można to zrobić:

@SpringBootApplication 
@ImportResource("classpath:applicationContext.xml") 
public class ExampleApplication { 
    public static void main(String[] args) throws Exception { 
     SpringApplication.run(ExampleApplication.class, args); 
    } 
} 

zauważy ciąg classpath w @ImportResource adnotacji.

Powiązane problemy