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命令行参数解析OptionParser类用法实例
Oct 09 Python
Python中的生成器和yield详细介绍
Jan 09 Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
Jan 18 Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 Python
对python 读取线的shp文件实例详解
Dec 22 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
我用Python抓取了7000 多本电子书案例详解
Mar 25 Python
从0开始的Python学习016异常
Apr 08 Python
浅谈Python中函数的定义及其调用方法
Jul 19 Python
Django显示可视化图表的实践
May 10 Python
Python函数中的不定长参数相关知识总结
Jun 24 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
世界上第一台立体声收音机
2021/03/01 无线电
PHP的可变变量名的使用方法分享
2012/02/05 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
2015/11/04 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
利用JS实现数字增长
2016/07/28 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
JavaScript实现的斑马线表格效果【隔行变色】
2017/09/18 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
python入门基础之用户输入与模块初认识
2016/11/14 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
python图像常规操作
2017/11/11 Python
Python从零开始创建区块链
2018/03/06 Python
对Python中list的倒序索引和切片实例讲解
2018/11/15 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
用Python实现职工信息管理系统
2020/12/30 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
Hibernate持久层技术
2013/12/16 面试题
计算机科学系职业生涯规划书
2014/03/08 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
研讨会通知
2015/04/27 职场文书
小学英语新课改心得体会
2016/01/22 职场文书