📜  Spring Boot自动配置和分派器Servlet(1)

📅  最后修改于: 2023-12-03 14:47:33.348000             🧑  作者: Mango

Spring Boot自动配置和分派器Servlet介绍

Spring Boot是一种快速构建Java应用程序的框架。它是一个基于Spring框架的微服务框架,旨在简化Spring应用程序的创建和部署。

本文将介绍Spring Boot自动配置和分派器Servlet的相关内容。包括Spring Boot自动配置原理、Spring Boot如何自动配置分派器Servlet、如何手动配置分派器Servlet等。

Spring Boot自动配置原理

Spring Boot的自动配置原理是通过条件注解完成的。条件注解用来决定是否启用某个配置类或组件。

Spring Boot主要使用了五个条件注解:

  1. @ConditionalOnClass:当classpath下发现该类的情况下进行自动配置。

  2. @ConditionalOnMissingBean:当容器没有这个bean的情况下进行自动配置。

  3. @ConditionalOnProperty:指定的属性是否有指定的值。

  4. @ConditionalOnResource:类路径下是否有指定的资源。

  5. @ConditionalOnWebApplication:当前项目是否是一个Web项目。

Spring Boot如何自动配置分派器Servlet

Spring Boot在依赖中引入web模块时,会自动配置Tomcat或Jetty服务器并初始化一个分派器Servlet。分派器Servlet是Spring MVC的核心组件,负责将请求分配给正确的Controller处理。

Spring Boot会根据classpath中有无Servlet容器来判断,如果有Servlet容器,则自动注册DispatcherServlet并初始化Spring MVC相关组件。如果没有Servlet容器,则可能是非web应用,自动配置不会生效。

分派器Servlet的默认映射路径是/,可以通过在application.properties中进行配置:

spring.mvc.servlet.path=/your/path
如何手动配置分派器Servlet

如果您想手动配置分派器Servlet,可以创建一个配置类,并添加@EnableWebMvc注解:

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("index");
    }

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp().prefix("/WEB-INF/views/").suffix(".jsp");
    }
}

通过@EnableWebMvc注解,您可以自由地配置Spring MVC中的各项组件,比如拦截器、视图解析器、静态资源处理器等。

总结

本文介绍了Spring Boot自动配置和分派器Servlet的相关内容,包括Spring Boot自动配置原理、Spring Boot如何自动配置分派器Servlet、如何手动配置分派器Servlet等。希望对您有所帮助。