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之模拟鼠标键盘动作具体实现
Dec 30 Python
浅谈python中set使用
Jun 30 Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 Python
python字典DICT类型合并详解
Aug 17 Python
python实现多张图片拼接成大图
Jan 15 Python
对python 多线程中的守护线程与join的用法详解
Feb 18 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
超简单的Python HTTP服务
Jul 22 Python
python 变量初始化空列表的例子
Nov 28 Python
pycharm实现print输出保存到txt文件
Jun 01 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
Jun 11 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
Mar 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
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
2019/04/16 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
Python pandas如何向excel添加数据
2020/05/22 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
德国高性价比网上药店:medpex
2017/07/09 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
生产副总岗位职责
2013/11/28 职场文书
房地产开发计划书
2014/01/10 职场文书
《珍珠泉》教学反思
2014/02/20 职场文书
天地会口号
2014/06/17 职场文书
尊老爱亲美德少年事迹材料
2014/08/14 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
会议通知
2015/04/15 职场文书
遗愿清单观后感
2015/06/09 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python
详解PHP Swoole与TCP三次握手
2021/05/27 PHP