Springboot 个性化配置SpringMVC

本文详细探讨了Springboot如何进行SpringMVC的自动配置,并解释了如何进行个性化配置,特别是针对UrlPathHelper的自定义。通过分析源码,展示了Springboot确保用户自定义配置在系统配置之后调用的机制,帮助读者理解Springboot自动装配的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Springboot 个性化配置SpringMVC

Springboot很重要的一个功能就是整合了各种spring相关框架以及其他在开发场景中通用的包和需要配置的类。达到的效果就是以前需要写非常多的配置类以及XML文件,现在只需要在porm中配置:

<parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.3.7.RELEASE</version>
</parent>
<dependencies>
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
</dependencies>

其中spring-boot-starter-xxx就是spring官方 给出的各种应用场景的打包,当然我们可以自己打包一些场景。但是什么都打包好了,如果我要自己配置,那怎么办呢?

1 SpringMVC自动配置

要想自己配置一些个性化的设置,那么要了解springboot是如何进行自动化配置以及配置了哪些东西的。

加载入口

springboot的启动路口相对于tomocat来说要明显一点,至少这里有了一个主类,最关键的就是这个@SpringBootApplication注解。

@SpringBootApplication
public class MainApplication {
   
    public static void main(String[] args) {
   
        SpringApplication.run(MainApplication.class,args);
    }

}

@SpringBootApplication注解里面主要有三个注解:

  • @SpringBootConfiguration 表明这是一个Configuration

  • @ComponentScan 用于标注扫哪些包

  • @EnableAutoConfiguration 开启自动配置

    其中完成的两个动作

    • @AutoConfigurationPackage 里面是 @Import({Registrar.class})
    • @Import({AutoConfigurationImportSelector.class}) 关键的就是把AutoConfigurationImportSelector.class注册到容器当中

在整个SpringBoot当中会见到非常多的xxxAutoConfiguration类,这里面储备的就是各种相关的配置。而对于SpringMVC来说,主要的配置就在WebMvcAutoConfiguration中。

在这里插入图片描述

看一下WebMvcAutoConfiguration的注解

@Configuration(
    proxyBeanMethods = false
) // 不会创建代理对象
@ConditionalOnWebApplication(
    type = Type.SERVLET
) // web应用才初始化
@ConditionalOnClass({
   Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class}) //这些类加载了才初始化
@ConditionalOnMissingBean({
   WebMvcConfigurationSupport.class}) //不存在这个类才初始化
@AutoConfigureOrder(-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值