Spring @Enable模块驱动原理及使用实例


Posted in Python onJune 23, 2020

Spring @Enable 模块概览

框架实现 @Enable注解模块 激活模块
Spring Framework @EnableWebMvc Web MVC 模块
@EnableTransactionManagement 事务管理模块
@EnableCaching Caching 模块
@EnableMBeanExport JMX 模块
@EnableAsync 异步处理模块
@EnableWebFlux Web Flux 模块
@EnableAspectJAutoProxy AspectJ 代理模块
Spring Boot @EnableAutoConfiguration 自动装配
@EnableManagementContext Actuator 管理模块
@EnableConfigurationProperties 配置属性绑定模块
@EnableOAuth2Sso OAuth2 单点登录模块
Spring Cloud @EnableEurekaServer Eureka 服务器模块
@EnableConfigServer 配置服务器模块
@EnableFeignClients Feign 客户端模块
@EnableZuulProxy 服务网关Zuul 模块
@EnableCircuitBreaker 服务熔断模块

理解 @Enable 以 @EnableWebMVC 为例进行理解

定义如下:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(DelegatingWebMvcConfiguration.class)
public @interface EnableWebMvc {
}

发现该注解中引入的 DelegatingWebMvcConfiguration.class

@Configuration(proxyBeanMethods = false)
public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport {
...
}

public class WebMvcConfigurationSupport implements ApplicationContextAware, ServletContextAware {
@Bean
@SuppressWarnings("deprecation")
public RequestMappingHandlerMapping requestMappingHandlerMapping(
   @Qualifier("mvcContentNegotiationManager") ContentNegotiationManager contentNegotiationManager,
   @Qualifier("mvcConversionService") FormattingConversionService conversionService,
   @Qualifier("mvcResourceUrlProvider") ResourceUrlProvider resourceUrlProvider) {
   ...
}
...
}

其中 实现类 WebMvcConfigurationSupport.java 中 预定义了 多个 Spring Bean 对象,

随着 @EnableWebMVC 驱动注解的加载而被加载到 Spring 上下文中从而实现 Spring Web MVC的功能。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python远程登录代码
Apr 29 Python
python实现删除文件与目录的方法
Nov 10 Python
总结python爬虫抓站的实用技巧
Aug 09 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
python selenium 获取标签的属性值、内容、状态方法
Jun 22 Python
python添加菜单图文讲解
Jun 04 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
python3.6生成器yield用法实例分析
Aug 23 Python
Django项目中使用JWT的实现代码
Nov 04 Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 Python
python文件名批量重命名脚本实例代码
Apr 22 Python
浅谈Python响应式类库RxPy
Jun 14 Python
PyTorch-GPU加速实例
Jun 23 #Python
Python基于yaml文件配置logging日志过程解析
Jun 23 #Python
解决pytorch多GPU训练保存的模型,在单GPU环境下加载出错问题
Jun 23 #Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
Jun 23 #Python
浅谈pytorch中的BN层的注意事项
Jun 23 #Python
Python3与fastdfs分布式文件系统如何实现交互
Jun 23 #Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
Jun 23 #Python
You might like
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
BootStrap中Datepicker控件带中文的js文件
2016/08/10 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
在Python中调用ggplot的三种方法
2015/04/08 Python
Python 文件管理实例详解
2015/11/10 Python
Python cookbook(数据结构与算法)根据字段将记录分组操作示例
2018/03/19 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
解决yum对python依赖版本问题
2019/07/05 Python
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
Sandro法国官网:法国成衣品牌
2019/08/28 全球购物
介绍一下Ruby的多线程处理
2013/02/01 面试题
农村婚礼证婚词
2014/01/10 职场文书
护士毕业实习感言
2014/03/05 职场文书
小学清明节活动方案
2014/03/08 职场文书
8和9的加减法教学反思
2014/05/01 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
毕业证明模板
2015/06/19 职场文书
诚信教育主题班会
2015/08/13 职场文书
Android 中的类文件和类加载器详情
2022/06/05 Java/Android