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 相关文章推荐
Saltstack快速入门简单汇总
Mar 01 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
Jun 14 Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 Python
Python设计模式之策略模式实例详解
Jan 21 Python
python3注册全局热键的实现
Mar 22 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
Python xlwt模块使用代码实例
Jun 10 Python
如何完美的建立一个python项目
Oct 09 Python
Python基于callable函数检测对象是否可被调用
Oct 16 Python
python 调整图片亮度的示例
Dec 03 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
Python列表删除重复元素与图像相似度判断及删除实例代码
May 07 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世纪万年历
2006/12/06 PHP
php数组去除空值函数分享
2015/02/02 PHP
js类中的公有变量和私有变量
2008/07/24 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
javascript 闭包
2011/09/15 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
JavaScript中的splice方法用法详解
2016/07/20 Javascript
mvc中form表单提交的三种方式(推荐)
2016/08/10 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
jQuery实现手势解锁密码特效
2017/08/14 jQuery
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
2021/02/25 Javascript
Python格式化css文件的方法
2015/03/10 Python
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
Python探索之SocketServer详解
2017/10/28 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
python文字转语音的实例代码分析
2019/11/12 Python
python实现ip地址的包含关系判断
2020/02/07 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
进修护士自我鉴定
2013/10/14 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
2014年信访工作总结
2014/11/17 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android
SQL写法--行行比较
2021/08/23 SQL Server