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 相关文章推荐
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
Python自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
python3+PyQt5重新实现QT事件处理程序
Apr 19 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 Python
Python 转换文本编码实现解析
Aug 27 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
Mar 30 Python
Python Selenium截图功能实现代码
Apr 26 Python
python matlab库简单用法讲解
Dec 31 Python
Python 使用dict实现switch的操作
Apr 07 Python
Python 数据可视化之Bokeh详解
Nov 02 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基础知识:类与对象(5) static
2006/12/13 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
laravel学习教程之存取器
2016/07/30 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
2018/06/14 PHP
prototype class详解
2006/09/07 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
vue的props实现子组件随父组件一起变化
2016/10/27 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
使用nvm和nrm优化node.js工作流的方法
2019/01/17 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
python将图片文件转换成base64编码的方法
2015/03/14 Python
Python实现批量读取word中表格信息的方法
2015/07/30 Python
python学生信息管理系统
2018/03/13 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
python中_del_还原数据的方法
2020/12/09 Python
java关于string最常出现的面试题整理
2021/01/18 Python
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
学生会招新宣传语
2015/07/13 职场文书
敬老院活动感想
2015/08/07 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript