@EnableWebMvc启动springmvc特性
使用
@EnableWebMvc
@SpringBootApplication
public class Application {public static void main(String[] args) {log.debug("access {}","main");SpringApplication.run(Application.class, args);}
}
WebMvcConfigurerAdapter 实现类,配置跨域,添加静态页面等功能
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {@AutowiredRedisData redisData;@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*").allowCredentials(true).allowedMethods("GET", "POST", "DELETE", "PUT").maxAge(3600);}}
原理
@EnableWebMvc注解注入了DelegatingWebMvcConfiguration的bean
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Import({DelegatingWebMvcConfiguration.class})
public @interface EnableWebMvc {
}
启动加载所有WebMvcConfigurer实例
@Configuration
public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport {private final WebMvcConfigurerComposite configurers = new WebMvcConfigurerComposite();public DelegatingWebMvcConfiguration() {}@Autowired(required = false)public void setConfigurers(List<WebMvcConfigurer> configurers) {if(!CollectionUtils.isEmpty(configurers)) {this.configurers.addWebMvcConfigurers(configurers);}}
...
}
WebMvcConfigurerComposite 使用组合模式,是树枝节点
class WebMvcConfigurerComposite implements WebMvcConfigurer {private final List<WebMvcConfigurer> delegates = new ArrayList();WebMvcConfigurerComposite() {}public void addWebMvcConfigurers(List<WebMvcConfigurer> configurers) {if(!CollectionUtils.isEmpty(configurers)) {this.delegates.addAll(configurers);}}
@EnableWebMvc启动springmvc特性相关推荐
- 如何用Java类配置Spring MVC(不通过web.xml和XML方式)
DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...
- Springboot环境下mybatis配置多数据源配置
mybatis多数据源配置(本文示例为两个),方便实现数据库的读写分离,分库分表功能 本文基于springboot2进行的配置,如版本为springboot1系列则需修改yml的配置(在文末附带) m ...
- Springboot 整合mybatis,实现多数据读写分离分库分表
mybatis多数据源配置(本文示例为两个),方便实现数据库的读写分离,分库分表功能 本文基于springboot2进行的配置,如版本为springboot1系列则需修改yml的配置(在文末附带) m ...
- SpringMVC源码分析_1 SpringMVC容器启动和加载原理
SpringMVC源码分析_1 SpringMVC启动和加载原理 ...
- SpringMVC通过注解方式读取properties文件中的值
为什么80%的码农都做不了架构师?>>> 本方法是结合Java配置及XML配置来完成. 首先定义XML配置文件 app.xml: <?xml version=" ...
- eclipse maven 构建简单springmvc项目
环境:eclipse Version: Oxygen.3a Release (4.7.3a) 创建maven Project项目,目录结构 修改工程的相关编译属性 修改pop.xml,引入spring ...
- 学习搭建maven风格的springmvc项目(一)——入门
step1:首先在eclispe中新建一个maven项目:new->project->Maven Project,artifact选择webapp: step2:填写项目的group ...
- SpringMVC整合Swagger2
SpringMVC整合Swagger2 前言 POM引入 Swagger配置类 spring-mvc.xml设置 如果有在web.xml里配置拦截器 测试类 准备就绪 注意事项 爬坑经历 参考文章 前 ...
- SSM框架整合(Spring+SpringMVC+MyBatis)
输出结果 1.Maven Web项目创建 之前有写过Eclipse+Maven创建web项目的帖子,如果需要,请参考这里写链接内容 创建好项目之后因为入下图: 2.SSM整合 2.1 引入需要的JAR ...
最新文章
- 基于STC8G1K17的信号转换方案
- python装饰器实例-python 装饰器(三):装饰器实例(一)
- php嵌套 frame,终极解决禁止网站被别人通过iframe引用嵌套套入。
- vivo分屏_vivo分屏+Jovi语音助手!让你找到解题新思路
- windowopen传值到jsp_window.open()使用方法以及传参数的问题总结
- 从全栈式解决方案到情感化,揭秘问众智能切入车载语音市场的最佳姿势...
- Codeforces Round #196 (Div. 1 + Div. 2)
- 直方图均衡图像对比度(histogram equalization)PYTHON+OPENCV2
- arm汇编指令集_汇编入门第一篇,小白也能看懂
- odps sql 日期函数处理
- S7-1500 SD卡格式化
- 直播电商源码,实现直播音视频的推流
- 【网络攻防课实验】一:本地系统密码破解
- Low-Code is Low—— 低代码的使用
- 石大远程在线考试计算机网络课程设计,20202021石大远程在线考试——《计算机网络课程设计》在线考试主观题参考资料答案.docx...
- AMT说产业互联网络
- 摄像头CMOS CCD
- 音频转换器怎么将ogg转换mp3格式
- 使用css3中的var()实现改变scss的变量值
- 2022-2027年中国金融服务业RFID行业发展前景及投资战略咨询报告