SpringBoot笔记整理(四)

SpringBoot笔记整理(一)
SpringBoot笔记整理(二)
SpringBoot笔记整理(三)
SpringBoot笔记整理(四)

1、SpringMVC自动配置

以下是SpringBoot对SpringMVC

  • nclusion of ContentNegotiatingViewResolver and BeanNameViewResolver beans.
    自动配置了ViewResolver

  • Support for serving static resources, including support for WebJars .

  • registration of Converter, GenericConverter, and Formatter beans.

  • Support for HttpMessageConverters .

  • Automatic registration of MessageCodesResolver .

  • Static index.html support.

  • Custom Favicon support .

  • Automatic use of a ConfigurableWebindingInitializer bean .

If you want to keep Spring Boot MVC features and you want to add additional MVC configuration (interceptors, formatters, view controllers, and other features), you can add your own class of type WebMvcConfigurerAdapter but without @EnableWebMvc. If you wish to provide custom instances of RequestMappingHandlerMapping,RequestMappingHandlerAdapter, or ExceptionHandExceptionResolver, you can declare a WebMvcRegistrationsAdapter instance to provide such components.
If you want to take complete control of Spring MVC, you can add your own @Configuration annotated with @EnableWebMvc.

2、扩展SpringMVC

<mvc:view-controller path="/hello" view-name="success"/>
<mvc:interceptors><mvc:interceptor><mvc:mapping path="/hello"/><bean></bean></mvc:interceptor>
</mvc:interceptors>

编写一个配置类(@Configuration),是WebMvcConfigurationAdapter类型;不能标注@EnableWebMvc

既保留了所有的自动配置,也能用我们扩展的配置

//使用WebMvcConfigurer可以来扩展SpringMVC的功能
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {@Overridepublic void addViewControllers(ViewControllerRegistry registry) {//浏览器发送/athomyit请求来到 successregistry.addViewController("/athomyit").setViewName("success");}
}

原理:
1)WebMvcAutoConfiguration是SpringMVC的自动配置类。
2)在做其他自动配置时会导入:@Import(EnableWebMvcConfiguration.class)

@Configuration(proxyBeanMethods = false
)
public static class EnableWebMvcConfiguration extends DelegatingWebMvcConfiguration implements ResourceLoaderAware {//从容器中获取所有的WebMVCConfigurer@Autowired(required = false
)
public void setConfigurers(List<WebMvcConfigurer> configurers) {if (!CollectionUtils.isEmpty(configurers)) {this.configurers.addWebMvcConfigurers(configurers);}}

3)容器中所有的WebMvcConfigurer都会一起起作用

4)我们的配置类也会被调用
效果:SpringMVC的自动配置和我们的拓展配置都会起作用

3、全面接管SpringMVC

SpringBoot对SpringMVC的自动配置不需要了,所有的都是我们自己配置,所有的SpringMVC的自动配置都失效了

我们需要在配置类中添加@EnableWebMvc即可

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
@EnableWebMvc
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {@Overridepublic void addViewControllers(ViewControllerRegistry registry) {// super.addViewControllers(registry);//浏览器发送 /atguigu 请求来到 successregistry.addViewController("/atguigu").setViewName("success");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国人民大学孟小峰教授:“科学数据智能——人工智能在科学发现中的机遇与挑战”...

来源&#xff1a;国家自然科学基金委员会微信公号 孟小峰 博士&#xff0c;中国人民大学教授&#xff0c;博士生导师&#xff0c;CCF会士。主要研究方向为数据库理论与系统、大数据管理系统、大数据隐私保护、大数据融合与智能、大数据实时分析、社会计算等。摘 要随着全球各科…

Java 面向对象语言基础

面向过程 就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候一个一个依次调用就可以了。 面向对象 是把构成问题事务分解成各个对象&#xff0c;建立对象的目的不是为了完成一个步骤&#xff0c;而是为了描叙某个事物在整个解…

MFC多视图与重绘效率

MFC多视图与重绘效率 多窗口同步更新 CDocument::UpdateAllViews(CView* pSender,LPARAM lHint,CObject* pHint):通知所有与CDocument同源的CView窗口&#xff0c;即发送WM_PAINT。View::OnUpdate(CView* pSender,LPARAM lHint,CObject* pHint)局部重绘或全部重绘&#xff…

全球首例!这台机器人发明了两项新技术,已获专利授权!

文章来源&#xff1a;EETOP几天前前人工智能系统专利申请权有最新发展。南非率先成为第一个授予人工智能专利权的国家&#xff0c;承认人工智能机器人DABUS为「发明者」&#xff0c;6日澳大利亚联邦法院也做出裁决&#xff1a;发明者可以是非人类。 这算是有历史里程碑意义的判…

成员变量、局部变量、实例变量、静态变量、类变量、常量

成员变量&#xff1a; 直接在类中声明的变量叫成员变量(又称全局变量) ▲ 初始化&#xff1a; 如果未对成员变量设置初始值&#xff0c;则系统会根据成员变量的类型自动分配初始值&#xff1a;int分配初始值0、boolean分配初始值false&#xff0c;而自定义类型则分配初始值null…

PHP+MySQL 跨服务器跨数据库数据拷贝系统

说明&#xff1a; 1.使用之前&#xff0c;做好数据备份。&#xff08;无论是来源数据库&#xff0c;还是目标数据库&#xff09; 2.仅支持MySQL数据库。&#xff08;可自行修改代码已连接其它数据库&#xff09; 3.连接数据库的账号必须有远程访问MySQL数据库数据库的权限。&am…

行业洞见 | 一文了解自动驾驶汽车

文章来源&#xff1a;ancholabs.medium.com文字翻译&#xff1a; 新能源情报局封面配图&#xff1a;原作者驾驶是人类日常从事的活动中最困难的之一。遵循交通规则&#xff0c;通过眼神与其他司机沟通交流、对天气状况做出反应是成为优秀司机的先决条件。在自动驾驶汽车中&…

MATLAB高光谱图像处理基础

介绍高光谱图像的基本知识&#xff0c;便通过MATLAB对高光谱图像进行基本的处理。 文章目录前言一、高光谱图像二、MATLAB高光谱图像处理1.加载.MAT文件数据2.图像的显示3.图像维度变换总结前言 高光谱图像是一个立方体结构&#xff0c;维度为M x N x B&#xff0c;M为水平方向…

Spring体系常用方法(一)

1、获取请求&#xff08;HttpServletRequest&#xff09;中的参数&#xff0c;且要求必须有这个参数 String mobile ServletRequestUtils.getRequiredStringParameter(request, "mobile");转载于:https://www.cnblogs.com/z-y-x/p/10456896.html

中国千亿科技巨头,成功收购英国最大芯片制造商!

来源&#xff1a;世界先进制造技术论坛内容来源&#xff1a;每日经济新闻综合自每经App、界面新闻、财联社等本期编辑&#xff1a;小艾 在全球缺芯的背景下&#xff0c;8月15日&#xff0c;国产芯片巨头闻泰科技&#xff08;600745.SH&#xff09;披露&#xff0c;旗下全资子公…

MATLAB图自编码器

通过MATLAB来实现图自编码器&#xff0c;用于高光谱图像特征的提取。 文章目录前言一、MATLAB相关知识二、编写算法1.图自编码器搭建2.可视化相关参数总结前言 算法输入数据&#xff1a; 图节点属性矩阵&#xff1b;邻接矩阵&#xff1b;概率p&#xff1b; W为自编码器的隐藏…

Java抽象类、接口、类的特殊成员

抽象类 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是并不是所有的类都是用来描绘对象的. 如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。 抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽…

考夫曼:破解大脑代码并创建真正的人工智能

来源&#xff1a;CSDN博主「CDA数据分析师」原文链接&#xff1a;https://blog.csdn.net/yoggieCDA/article/details/1045567421955年&#xff0c;计算机科学家约翰麦卡锡&#xff08;John McCarthy&#xff09;首次创造了“人工智能”一词。当时&#xff0c;人工智能是对可以表…

MATLAB高光谱图像构建KNN图

在高光谱图像的特征提取过程中&#xff0c;采用非线性降维的方式对高光谱图像降维的过程中&#xff0c;采用图自编码器来对数据进行降维&#xff0c;需要将利用高光谱图像的结构信息和内容信息&#xff0c;则需要将高光谱图像数据构造为一个图结构&#xff0c;图结构的构建需要…

类脑量子叠加脉冲神经网络:从量子大脑假说到更好的人工智能

来源&#xff1a;神经现实作者&#xff1a;曾毅研究团队 |封面&#xff1a;Mario De Meyer排版&#xff1a;光影以深度神经网络为代表的现代人工智能模型在识别图像、语音、文字等模式信息任务取得优异表现。然而&#xff0c;生物大脑具有处理复杂多变的环境信息的能力&#xf…

VM虚拟机上的CentOS 7系统重置root用户密码

1.开机在进入CentOS系统时&#xff08;还未进入系统内&#xff09;的系统选择页面时按E键进入系统编辑模式 2.找到Linux16开头的这行代码&#xff0c;用方向键将光标移动至这行代码的结尾&#xff0c;键入一个空格和rd.break&#xff0c;然后按CtrlX键进入 3.进入switch_root命…

遥感图像分类原理

1.原理 1.1 每一个像元作为一个样本&#xff0c;波段作为特征&#xff0c;理想情况下&#xff0c;同类地物应该具有相同或相似的特征描述&#xff0c;因此像元在n维特征空间中聚集在一起&#xff0c;而不同地物应该具有不同的特征描述&#xff0c;因此不同特征地物像元在n维空间…

2019第一次作业

10.实验代码 include <stdio.h> int main(void) { int i, f, X, N; scanf("%d",&N); int a [N]; scanf("%d",&X); f0; for(i0;i<N;i){ scanf("%d",&a[i]); if(a[i]X){ printf("%d",i); f; } } if(f0){ printf(&q…

分布式——ACID原则 CAP理论

分布式计算的原理 分布式计算就是将计算任务分摊到大量的计算节点上&#xff0c;一 起完成海量的计算任务。而分布式计算的原理和并行计算 类似&#xff0c;就是将一个复杂庞大的计算任务适当划分为一个个 小任务&#xff0c;任务并行执行&#xff0c;只不过分布式计算会将这些…

Matlab高光谱样本相关性分析

一.高光谱图像数据分析 1.分析光谱波段的相关性 1.1 对于维度为(m,n,b)的高光谱数据&#xff0c;使用reshape函数将其变换为(N,b)维度的&#xff0c;其中N m x n&#xff0c;表示像素数量&#xff0c;b表示波段数。 1.2 分析样本(像素)间波段的相关性&#xff0c;采用函数c…