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中条件判断语句的简单使用方法
Aug 21 Python
详谈python read readline readlines的区别
Sep 22 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
python中metaclass原理与用法详解
Jun 25 Python
python实现的批量分析xml标签中各个类别个数功能示例
Dec 30 Python
Python tkinter常用操作代码实例
Jan 03 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
在 Python 中接管键盘中断信号的实现方法
Feb 04 Python
python 使用递归回溯完美解决八皇后的问题
Feb 26 Python
python 利用opencv实现图像网络传输
Nov 12 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中使用正则表达式提取中文实现笔记
2015/01/20 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
深入理解jQuery事件绑定
2016/06/02 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
2016/11/22 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
jquery实现自定义树形表格的方法【自定义树形结构table】
2019/07/12 jQuery
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
python爬虫常用的模块分析
2014/08/29 Python
跟老齐学Python之编写类之三子类
2014/10/11 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
python迭代器与生成器详解
2016/03/10 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
flask session组件的使用示例
2018/12/25 Python
python绘制直方图和密度图的实例
2019/07/08 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
numpy 矩阵形状调整:拉伸、变成一位数组的实例
2020/06/18 Python
详解Python GUI编程之PyQt5入门到实战
2020/12/10 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
Python修改DBF文件指定列
2020/12/19 Python
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
施工资料员的岗位职责
2013/12/22 职场文书
学生手册家长评语
2014/02/10 职场文书
监察建议书格式
2014/05/19 职场文书
单位个人查摆问题及整改措施
2014/10/28 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
Golang全局变量加锁的问题解决
2021/05/08 Golang
Python实现双向链表
2022/05/25 Python