Spring Boot深度实践之自动装配( 二 )
本文插图
可以看到 , @Service确实被@Component标注了 , 所以被@Service注解的组件也将会被Spring容器扫描到 。
- 常用模式注解整理
本文插图
- 装配方式
- <context:component-scan>方式
- @ComponentScan方式
本文插图
如上图所示 , 通过xml配置的方式 , <context:annotation-config />激活注解驱动特性 , <context:component-scan base-package=”com.example.demo” />指定扫描组件的根路径 , 将被@Component注解的类加载进Spring容器 。
再来看看@ComponentScan方式:
本文插图
只需要在主配置类上添加@ComponentScan(value=''需要扫描的包名前缀'')注解即可 。
模式注解在基于Spring框架开发Web服务时是极常用的注解 , 相信做Java Web开发的同学一定深有体会 。
当我们了解完Spring Framework的模式注解装配 , 接着来到第二部分@Enable模块装配 。
Spring @Enable模块装配
- Enable 模块定义
Spring Framework 3.1 开始支持“@Enable模块驱动” 。 所谓“模块”是指具备相同领域的功能组件集合 , 组合所形成一个独立的单元 。 在Spring Framework中 , 存在Web MVC模块 , AspectJ代理模块 , Caching(缓存)模块 , JMX(java管理扩展)模块 , Async(异步处理)模块等 。
- 常见@Enable注解模块整理
本文插图
- 装配方式
- 注解驱动方式
- 接口编程方式
本文插图
可以看到 , @EnableWebMvc被@Import标注了 , @Import的作用是将DelegatingWebMvcConfiguration装载进Spring容器 , 我们再进入到DelegatingWebMvcConfiguration中 , 发现其已被@Configuration标注 , 如下图所示:
本文插图
看到@Configuration注解 , 就能知道 , DelegatingWebMvcConfiguration将会被Spring容器扫描到并加载进容器 , 这种方式 , 就是Enable模块的注解驱动方式 。
再来说说接口编程方式 , 这里我们以@EnableCaching为例 , @EnableCaching的作用是激活Spring的缓存 。 贴上源码:
本文插图
从源码可以看到 , @Import引入的是CachingConfigurationSelector类 , 再进入到CachingConfigurationSelector类 , 下图为其源码:
本文插图
推荐阅读
- 【】新闻调查:决战深度贫困
- 深度解娱SJ|陈小纭怎么不会知道绿色含义,先暗示自己被绿又出面解释,看不懂
- 央视网|新闻调查:决战深度贫困
- 新闻调查:决战深度贫困
- :iPhone 12不再附送充电器,深度分析苹果为哪般
- 央视网|修村路、建水厂、搬新居……决战“三区三州”深度贫困
- 央视新闻客户端|修村路、建水厂、搬新居……决战“三区三州”深度贫困
- 一个|修村路、建水厂、搬新居……决战“三区三州”深度贫困
- 篮球国度|为什么哈登喜欢威少却讨厌保罗?,深度分析:都是NBA顶级控卫
- 妖怪大邪神「深度评测」 IKKO ITM05 双解码手机耳放
