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判断某个用户对某个文件的权限
Oct 13 Python
python随机取list中的元素方法
Apr 08 Python
对pandas中to_dict的用法详解
Jun 05 Python
Python爬虫常用小技巧之设置代理IP
Sep 13 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
Django组件content-type使用方法详解
Jul 19 Python
Python 实现try重新执行
Dec 21 Python
python如何实现单链表的反转
Feb 10 Python
jupyter lab文件导出/下载方式
Apr 22 Python
Python读取Excel数据并生成图表过程解析
Jun 18 Python
Python读取yaml文件的详细教程
Jul 21 Python
Pytorch 图像变换函数集合小结
Feb 01 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
Yii实现简单分页的方法
2016/04/29 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
详解php与ethereum客户端交互
2018/04/28 PHP
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
详解addEventListener的三个参数之useCapture
2015/03/16 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
js实现蒙版效果
2020/01/11 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
Python实现抓取网页并且解析的实例
2014/09/20 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
python实现括号匹配的思路详解
2018/08/23 Python
python利用tkinter实现屏保
2019/07/30 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
求职者应聘的自我评价
2013/10/16 职场文书
优秀村官事迹材料
2014/01/10 职场文书
抗震救灾标语
2014/06/26 职场文书
2015元旦节寄语
2014/12/08 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python