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单例模式实例分析
Jan 14 Python
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
在Python的Tornado框架中实现简单的在线代理的教程
May 02 Python
使用python实现rsa算法代码
Feb 17 Python
使用anaconda的pip安装第三方python包的操作步骤
Jun 11 Python
django+xadmin+djcelery实现后台管理定时任务
Aug 14 Python
Django数据库类库MySQLdb使用详解
Apr 28 Python
Python3 批量扫描端口的例子
Jul 25 Python
Python + Flask 实现简单的验证码系统
Oct 01 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
Oct 11 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
Django如何实现防止XSS攻击
Oct 13 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的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
小程序实现人脸识别功能(百度ai)
2018/12/23 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
Python MD5文件生成码
2009/01/12 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
python绘制简单折线图代码示例
2017/12/19 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
澳大利亚相机之家:Camera House
2017/11/30 全球购物
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
踏青活动策划方案
2014/08/19 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL
TV动画《政宗君的复仇》第二季制作决定PV公布
2022/04/02 日漫
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python