SpringBoot流程简单叙述

首先springboot是通过main方法下的SpringApplication.run()方法启动的,启动的时候会调用refreshContext()方法去刷新将容器刷新,然后根据解析注解、解析配置文件的形式注册bean,

那么解析是从什么时候开始的呢?是从@SpringBootApplication注解开始解析的的,它会根据@EnableAutoConfiguration开启自动化配置,但它并不是所有的组件都会注册,这时候就需要一个选择性的导入,也就是@ImportSelect...,根据条件注解@Condition...进行选择性导入,如果你想要自定义的话,可以根据组件的@AutoConfigurationProperties(prefix="xxx"),在yaml文件中对组件的属性值进行修改,或者是自己定义一个bean放在你的配置类当中;

package com.atguigu.boot.springboot02.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.util.UrlPathHelper;

/**
 * @author diao 2022/1/30
 */
@Configuration(proxyBeanMethods = false)
public class WebConfig implements WebMvcConfigurer {
    @Bean
    public void configurePathMatch(PathMatchConfigurer configurer){
        UrlPathHelper urlPathHelper = new UrlPathHelper();
//        只要不移出后面的内容,矩阵的变量就可以生效
        urlPathHelper.setRemoveSemicolonContent(false);//不移出分号后的内容
        configurer.setUrlPathHelper(urlPathHelper);
    }

//    第二种方式,重新实现一个webMvcConfigurer
    @Bean
    public WebMvcConfigurer webMvcConfigurer(){
        return new WebMvcConfigurer(){
            @Override
            public void configurePathMatch(PathMatchConfigurer configurer) {
                UrlPathHelper urlPathHelper = new UrlPathHelper();
                urlPathHelper.setRemoveSemicolonContent(false);
                configurer.setUrlPathHelper(urlPathHelper);
            }
        };
    }
}

你可能感兴趣的:(springboot,spring,boot,java,spring)