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 time模块用法实例详解
Sep 11 Python
Python如何import文件夹下的文件(实现方法)
Jan 24 Python
python数据封装json格式数据
Mar 04 Python
分分钟入门python语言
Mar 20 Python
Python rstrip()方法实例详解
Nov 11 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
tensorflow使用range_input_producer多线程读取数据实例
Jan 20 Python
python 字典item与iteritems的区别详解
Apr 25 Python
Python爬取科目四考试题库的方法实现
Mar 30 Python
用Python提取PDF表格的方法
Apr 11 Python
Python数据分析入门之数据读取与存储
May 13 Python
用Python可视化新冠疫情数据
Jan 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
用PHP的ob_start();控制您的浏览器cache!
2006/11/25 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
动态为事件添加js代码示例
2009/02/15 Javascript
用js脚本控制asp.net下treeview的NodeCheck的实现代码
2010/03/02 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
输入框过滤非数字的js代码
2014/09/18 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
js实现二级导航功能
2017/03/03 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
layui使用label标签的方法
2019/09/14 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
微信小程序点击保存图片到本机功能
2019/12/13 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
Python 中list ,set,dict的大规模查找效率对比详解
2019/10/11 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
Python select及selectors模块概念用法详解
2020/06/22 Python
html5简介及新增功能介绍
2020/05/18 HTML / CSS
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
清洁工岗位职责
2014/01/29 职场文书
应届大学生自荐书
2014/06/17 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS