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 判断自定义对象类型
Mar 21 Python
Python中__call__用法实例
Aug 29 Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 Python
Python3多目标赋值及共享引用注意事项
May 27 Python
python调用摄像头拍摄数据集
Jun 01 Python
python 的topk算法实例
Apr 02 Python
浅谈tensorflow模型保存为pb的各种姿势
May 25 Python
python实现凯撒密码、凯撒加解密算法
Jun 11 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
Jan 05 Python
python元组拆包实现方法
Feb 28 Python
pandas求平均数和中位数的方法实例
Aug 04 Python
python计算列表元素与乘积详情
Aug 05 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
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
2018/04/20 PHP
Javascript 作用域使用说明
2009/08/13 Javascript
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
2013/07/04 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
Angular2里获取(input file)上传文件的内容的方法
2017/09/05 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
2019/10/26 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
Pyinstaller打包.py生成.exe的方法和报错总结
2019/04/02 Python
python实现中文文本分句的例子
2019/07/15 Python
Python新手学习函数默认参数设置
2020/06/03 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
函授自我鉴定
2013/11/06 职场文书
护士节活动总结
2014/08/29 职场文书
公司收款委托书范本
2014/09/20 职场文书
文员岗位职责
2015/02/04 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
PyMongo 查询数据的实现
2021/06/28 Python
Python使用MapReduce进行简单的销售统计
2022/04/22 Python