2017-05-25 21 views
5

Pracuję nad Spring Boot. Mam pewne wątpliwościJak Spring Boot Application działa wewnętrznie?

  1. co wiem bagażnika sprężyna ma main() i wywołuje run (statyczny), który jest obecny w SpringApplication. Ale chcę wiedzieć, jaki jest przepływ aplikacji Spring boot?
  2. Czy możemy uruchomić wiosenną aplikację startową inną niż serwer tomcat, jeśli tak, to w jaki sposób?
  3. Jak dodać filtr CROSS w Spring boot application? Jak wiemy w aplikacji Spring MVC, konfigurujemy filtr CROSS w web.xml, ale Spring boot nie ma web.xml, więc jak to skonfigurować?

Odpowiedz

6

Poniżej przedstawiono ogólny przebieg działania sprężyn.

W metodzie run uruchamiany jest kontekst aplikacji głównej, który z kolei wyszukuje klasy z adnotacją @Configuration, inicjuje wszystkie deklarowane komponenty bean w tych klasach konfiguracji i na podstawie zakresu tych komponentów, przechowuje te komponenty w jvm, w szczególności w przestrzeni wewnątrz JVM, która jest znana jako kontener IOC. Po utworzeniu wszystkich komponentów, automatycznie konfiguruje serwlet modułu rozsyłającego i rejestruje domyślne odwzorowania programu obsługi, komunikaty messageConverts i wszystkie inne podstawowe elementy.

Zasadniczo wiosenny rozruch obsługuje trzy wbudowane serwery: - Tomcat (domyślnie), Jetty i Undertow.

Możesz dodać filtry krzyżowe w bagażniku sprężyny w jednym z plików konfiguracyjnych jako

@Configuration 
@EnableWebMvc 
public class WebConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addCorsMappings(CorsRegistry registry) { 
     registry.addMapping("/api/**"); 
    } 
} 
+0

Dobre wyjaśnienie wiosennego rozruchu. Dzięki Jeśli chcę uruchomić wiosenną aplikację startową przy użyciu serwera jboss, to jak to skonfigurować? –

+0

Możesz skonfigurować serwer jboss tak, jak każdy inny serwer, który konfiguruję z widoku serwera w twoim ide, jedyną rzeczą jest to, że nie możesz skonfigurować jboss jako wbudowanego serwera z wiosennym rozruchem. –

+0

do uruchamiania aplikacji rozruchowej w jboss, potrzebuję wdrożyć plik wojenny na serwerze jboss, prawda? –

3
  1. co wiem bagażnika sprężyna ma main() i wywołuje run statycznego(), która jest obecna w SpringApplication. Ale chcę wiedzieć, co jest przepływem aplikacji rozruchowej Spring?

Wiosna bagażnika współpracuje z wieloma generycznego AutoConfiguration, np DataSourceAutoConfiguration dla DataSource itp Tak, że nie trzeba robić wiele konfiguracji i skupić się tylko na logice biznesowej. Przeczytaj this, aby uzyskać więcej informacji:

  1. Czy możemy uruchomić wiosenną aplikację startową inną niż serwer tomcat, jeśli tak, to w jaki sposób?

Tak, można uruchomić aplikację rozruchową Spring jako aplikację Console lub z innymi serwerami WWW, takimi jak Jetty. Przeczytaj this, aby uzyskać więcej informacji:

  1. Jak dodać filtr CROSS do aplikacji rozruchowej Spring? Jak wiemy w aplikacji Spring MVC, konfigurujemy filtr CROSS w web.xml, ale Spring boot nie ma web.xml, więc jak to skonfigurować?

Po prostu trzeba dodać FilterRegistrationBean w swojej klasie metodą głównej lub innej klasie @Configuration rejestracji zwyczaj Filter.

@Bean 
    public FilterRegistrationBean crossFilter() { 
     FilterRegistrationBean registration = new FilterRegistrationBean(); 
     registration.setFilter(new CrossFilter()); 
     registration.addUrlPatterns("/*"); 
     return registration; 
    } 
+0

Chcę uruchomić aplikację startową sprężyny przy użyciu serwera JBoss, więc jak mogę to skonfigurować? –

+1

Możesz spakować aplikację Spring Boot jako plik .war i wdrożyć na serwerze JBOSS. Dopóki serwer JBOSS ma specyfikację serwletu 3, będzie działał. – shazin