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 cookielib 登录人人网的实现代码
Dec 19 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
flask中使用蓝图将路由分开写在不同文件实例解析
Jan 19 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
Jan 29 Python
浅析Python装饰器以及装饰器模式
May 28 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
django 微信网页授权登陆的实现
Jul 30 Python
Python 使用元类type创建类对象常见应用详解
Oct 17 Python
基于pygame实现童年掌机打砖块游戏
Feb 25 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 Python
教你漂亮打印Pandas DataFrames和Series
May 29 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
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
php实现的用户查询类实例
2015/06/18 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
在表单提交前进行验证的几种方式整理
2013/07/31 Javascript
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
jsPDF生成pdf后在网页展示实例
2014/01/16 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
python自动12306抢票软件实现代码
2018/02/24 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
OpenCV 边缘检测
2019/07/10 Python
python 字典 setdefault()和get()方法比较详解
2019/08/07 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
Python 操作 MySQL数据库
2020/09/18 Python
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
美国手机支架公司:PopSockets
2019/11/27 全球购物
2014年党的群众路线教育实践活动总结
2014/04/25 职场文书
初中班级口号
2014/06/09 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
深入理解python多线程编程
2021/04/18 Python