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 异常处理实例详解
Mar 12 Python
在Python的Tornado框架中实现简单的在线代理的教程
May 02 Python
python简单实现计算过期时间的方法
Jun 09 Python
Python实现统计代码行的方法分析
Jul 12 Python
Python实现判断并移除列表指定位置元素的方法
Apr 13 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
Nov 30 Python
python查找重复图片并删除(图片去重)
Jul 16 Python
Python实现一个带权无回置随机抽选函数的方法
Jul 24 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
python 使用事件对象asyncio.Event来同步协程的操作
May 04 Python
总结Python使用过程中的bug
Jun 18 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
Syphon 使用方法
2021/03/03 冲泡冲煮
随时给自己贴的图片加文字的php代码
2007/03/08 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
2017/09/23 jQuery
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
Python(Tornado)模拟登录小米抢手机
2013/11/12 Python
Python中的descriptor描述器简明使用指南
2016/06/02 Python
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
python反编译学习之字节码详解
2019/05/19 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Python 没有main函数的原因
2020/07/10 Python
Python字符串三种格式化输出
2020/09/17 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
英国最大的化装舞会服装网站:Fancydress.com
2017/08/15 全球购物
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
机电一体化专业应届生求职信
2013/11/27 职场文书
临床医学专业求职信
2014/08/08 职场文书
委托证明书
2014/09/17 职场文书
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android