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 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
使用grappelli为django admin后台添加模板
Nov 18 Python
Python格式化css文件的方法
Mar 10 Python
python计算文本文件行数的方法
Jul 06 Python
Jupyter notebook远程访问服务器的方法
May 24 Python
Python开发最牛逼的IDE——pycharm
Aug 01 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
Window环境下Scrapy开发环境搭建
Nov 18 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
python 代码运行时间获取方式详解
Sep 18 Python
Python面向对象编程之类的概念
Nov 01 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中的日期处理方法集锦
2007/01/02 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
轻松掌握php设计模式之访问者模式
2016/09/23 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
Python多线程和队列操作实例
2015/06/21 Python
python 2.7.14安装图文教程
2018/04/08 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
如何用Python 加密文件
2020/09/10 Python
Python pip 常用命令汇总
2020/10/19 Python
CSS3解析抖音LOGO制作的方法步骤
2019/04/11 HTML / CSS
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
保时捷设计:Porsche Design
2019/03/30 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
自我评价中英文语句
2013/11/30 职场文书
大专生的学习自我评价
2013/12/04 职场文书
土木工程求职信
2014/05/29 职场文书
篮球赛口号
2014/06/18 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
课外活动实习计划
2015/01/19 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL