SpringBoot笔记(5)

SpringBoot笔记(5)

一、Web原生组件注入

1、使用Servlet API

@ServletComponentScan(basePackages = “com.atguigu.admin”) :指定原生Servlet组件都放在那里

@WebServlet(urlPatterns = “/my”):效果:直接响应,没有经过Spring的拦截器?

@WebFilter(urlPatterns={“/css/*”,“/images/*”})

@WebListener

推荐可以这种方式;

扩展:DispatchServlet 如何注册进来

  • 容器中自动配置了 DispatcherServlet 属性绑定到 WebMvcProperties;对应的配置文件配置项是 spring.mvc。
  • 通过 ServletRegistrationBean

    把 DispatcherServlet 配置进来。
  • 默认映射的是 / 路径。

<span>SpringBoot笔记(5)</span>

Tomcat-Servlet;

多个Servlet都能处理到同一层路径,精确优选原则

A: /my/

B: /my/1

2、使用RegistrationBean

ServletRegistrationBean`, `FilterRegistrationBean`, and `ServletListenerRegistrationBean
@Configuration
public class MyRegistConfig {

    @Bean
    public ServletRegistrationBean myServlet(){
        MyServlet myServlet = new MyServlet();

        return new ServletRegistrationBean(myServlet,"/my","/my02");
    }


    @Bean
    public FilterRegistrationBean myFilter(){

        MyFilter myFilter = new MyFilter();
//        return new FilterRegistrationBean(myFilter,myServlet());
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(myFilter);
        filterRegistrationBean.setUrlPatterns(Arrays.asList("/my","/css/*"));
        return filterRegistrationBean;
    }

    @Bean
    public ServletListenerRegistrationBean myListener(){
        MySwervletContextListener mySwervletContextListener = new MySwervletContextListener();
        return new ServletListenerRegistrationBean(mySwervletContextListener);
    }
}

二、定制化原理

1、定制化的常见方式

  • 修改配置文件;
  • xxxxxCustomizer;
  • 编写自定义的配置类 xxxConfiguration;+ @Bean替换、增加容器中默认组件;视图解析器
  • Web应用 编写一个配置类实现 WebMvcConfigurer 即可定制化web功能;+ @Bean给容器中再扩展一些组件
@Configuration
public class AdminWebConfig implements WebMvcConfigurer
  • @EnableWebMvc + WebMvcConfigurer —— @Bean 可以全面接管SpringMVC,所有规则全部自己重新配置; 实现定制和扩展功能

    • 原理
    • 1、WebMvcAutoConfiguration 默认的SpringMVC的自动配置功能类。静态资源、欢迎页…..
    • 2、一旦使用 @EnableWebMvc 、。会 @Import(DelegatingWebMvcConfiguration.class)
    • 3、DelegatingWebMvcConfiguration 的 作用,只保证SpringMVC最基本的使用
      • 把所有系统中的 WebMvcConfigurer 拿过来。所有功能的定制都是这些 WebMvcConfigurer 合起来一起生效
      • 自动配置了一些非常底层的组件。RequestMappingHandlerMapping、这些组件依赖的组件都是从容器中获取
      • public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport
    • 4、WebMvcAutoConfiguration 里面的配置要能生效 必须 @ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
    • 5、@EnableWebMvc 导致了 WebMvcAutoConfiguration 没有生效。
  • … …

2、原理分析套路

场景starter – xxxxAutoConfiguration – 导入xxx组件 – 绑定xxxProperties — 绑定配置文件项

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115187.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月12日 上午11:00
下一篇 2021年11月12日 下午12:00


相关推荐

  • MySQL数据库:视图View

    MySQL数据库:视图View

    2021年10月4日
    62
  • C语言if语句的基本用法

    C语言if语句的基本用法C语言if语句的基本用法一、if…1.一般形式:if(表达式){语句;}表达式:a,用非0值表示真,用0表示真;b,if(flag)相当于if(1==flag)c,浮点数无法与0比较,只能用近似的值比较;例:(1e-6)相当于1×10的-6次方;2.用于单分支选择结构;3.如含有交叉关系,使用并列的if语句;例:输出两个整数中的最大值#inclu…

    2022年5月19日
    45
  • 网页游戏开发入门教程一(webgame+design)

    网页游戏开发入门教程一(webgame+design)网页游戏开发入门教程一(webgame+design) 一、简单的程序框架。webgame程序构成:三大部分。第一是数据流程。第二是程序。第三是美术。其中,数据流程包括了功能。也只有在功能中才能体现数据流程。数据流程相当的麻烦,后面再讨论。比如最简单的卖买产品。要实现这个功能。那么需要有产品基础表、产品详细表、商店表、背包表。如果扩展性更强,相应

    2022年5月2日
    55
  • 深度学习——SPPNet原理[通俗易懂]

    深度学习——SPPNet原理[通俗易懂]从R-CNN到FastR-CNN,有必要了解下SPPNet,其全称为SpatialPyramidPoolingConvolutionalNetworks(空间金字塔池化卷积网络)。它将CNN的输入从固定尺寸改进为任意尺寸,例如在CNN结构中,输入图像的尺寸往往固定的(如224×224像素),输出可看做固定维数的向量。SPPNet在普通的CNN结构中加入了ROI池化层(ROIPo…

    2022年6月11日
    42
  • tfw是哪个运营商_“ TFW”是什么意思,以及如何使用它?

    tfw是哪个运营商_“ TFW”是什么意思,以及如何使用它?tfw 是哪个运营商 RantaImages Shutterstock 图片 快门 TFWisaninter llusuallyfin ButwhatdoesT wheredidthea

    2026年3月17日
    19
  • c++ com 组件

    c++ com 组件用 VC 编程所必需掌握的几个关键概念 这里所说的均是用 C 语言条件下的 COM 编程方式 1 COM 组件实际上是一个 C 类 而接口都是纯虚类 组件从接口派生而来 我们可以简单的用纯粹的 C 的语法形式来描述 COM 是个什么东西 classIObject public virtualFunct 0 virtualF

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号