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生成指定尺寸缩略图的示例
May 07 Python
详解Python中dict与set的使用
Aug 10 Python
Python 绘图和可视化详细介绍
Feb 11 Python
Python图像处理之识别图像中的文字(实例讲解)
May 10 Python
浅谈Pandas 排序之后索引的问题
Jun 07 Python
tensorflow中tf.slice和tf.gather切片函数的使用
Jan 19 Python
python十进制转二进制的详解
Feb 07 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
Mar 16 Python
PyQt5实现画布小程序
May 30 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
Python3开发环境搭建详细教程
Jun 18 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
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
coreseek 搜索英文的问题详解
2013/06/08 PHP
php的mssql数据库连接类实例
2014/11/28 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
PHP闭包函数详解
2016/02/13 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
js优化针对IE6.0起作用(详细整理)
2012/12/25 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
2016/12/07 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
Python设计模式编程中Adapter适配器模式的使用实例
2016/03/02 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
Python3并发写文件与Python对比
2019/11/20 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
Python新手学习raise用法
2020/06/03 Python
python和go语言的区别是什么
2020/07/20 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
化学学院毕业生自荐信范文
2013/12/17 职场文书
会计实训报告范文
2014/11/04 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
Python极值整数的边界探讨分析
2021/09/15 Python
angular4实现带搜索的下拉框
2022/03/25 Javascript