web-dev-qa-db-fra.com

Comment Spring Boot Application fonctionne-t-il en interne?

Je travaille sur Spring Boot. J'ai un doute

  1. Comme je le sais, Spring Boot a un main () et appelle run statique (), qui est présent dans SpringApplication. Mais je veux savoir quel est le flux de l'application de démarrage Spring?
  2. Pouvons-nous exécuter l'application Spring Boot sur un serveur autre que Tomcat, si oui, comment?
  3. Comment ajouter CROSS Filter dans l'application de démarrage Spring? Comme nous le savons dans l'application Spring MVC, nous configurons CROSS Filter dans le fichier web.xml, mais Spring ne dispose pas de fichier web.xml. Alors, comment configurer cela?
22
Sangram Badi

Voici le flux de haut niveau du fonctionnement de la botte à ressort.

À partir de la méthode run, le contexte d'application principal est lancé. Celui-ci recherche à son tour les classes annotées avec @Configuration, Initialise tous les beans déclarés dans ces classes de configuration et, en fonction de la portée de ces beans, stocke ces beans. dans la machine virtuelle Java, en particulier dans un espace de la machine virtuelle appelé conteneur IOC. Après la création de tous les beans, configure automatiquement le servlet de distributeur et enregistre les mappages de gestionnaire par défaut, les convertisseurs de messages et tous les autres éléments de base.

Spring Boot prend en charge trois serveurs intégrés: - Tomcat (par défaut), Jetty et Undertow.

Vous pouvez ajouter des filtres croisés au démarrage du printemps dans l’un des fichiers de configuration en tant que

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/api/**");
    }
}
29
Vijender Kumar
  1. Comme je le sais, Spring Boot a un main () et appelle run statique (), qui est présent dans SpringApplication. Mais je veux savoir quel est le flux de l'application de démarrage Spring?

Spring Boot fonctionne avec un grand nombre de AutoConfiguration génériques, par exemple DataSourceAutoConfiguration pour DataSource, etc. Ainsi, vous n'avez pas à faire beaucoup de configurations et à vous concentrer uniquement sur la logique métier. . Lire this pour plus

  1. Pouvons-nous exécuter une application de démarrage printanière autre que le serveur Tomcat, si oui, comment?

Oui, vous pouvez démarrer une application de démarrage Spring en tant qu'application console ou avec d'autres serveurs Web tels que Jetty. Lire this pour plus

  1. Comment ajouter CROSS Filter dans l'application de démarrage Spring? Comme nous le savons dans l'application Spring MVC, nous configurons CROSS Filter dans le fichier web.xml, mais Spring ne dispose pas de fichier web.xml. Alors, comment configurer cela?

Vous devez simplement ajouter un FilterRegistrationBean dans votre classe avec la méthode main ou toute autre classe avec @Configuration pour enregistrer un fichier personnalisé Filter.

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