那些高曝光的Annotation(@ComponentScan、@PropertySource与@PropertySources、@Import与ImportResource)
那些高曝光的Annotation
1、@ComponentScan
@ComponentScan对应于XML配置形式中的< context:component-scan >元素,用于配合一些元信息Java Annotation,比如@Component和@Repository等,将标注了这些元信息Annotation的bean定义类批量采集到Spring的IoC容器中。
我们可以通过basePackages等属性来细粒度地定制@ComponentScan自动扫描的范围,如果不指定,则默认Spring框架实现会从声明@ComponentScan所在类的package进行扫描。
@ConponentScan是SpringBoot框架魔法得以实现的一个关键组件。
2、@PropertySource与@PropertySources
@PropertySource用于从某些地方加载*.properties文件内容,并将其中的属性加载到IoC容器中,便于填充一些bean定义属性的占位符(placeholder),当然,这需要PropertySourcesPlaceholderConfigurer的配合。
如果我们使用Java 8 或者更高版本开发,那么,我们可以并行声明多个@PropertySource:
@Configuration
@PropertySource("classpath:1.properties")
@PropertySource("classpath:2.properties")
@PropertySource("...")
public class XConfiguration{...
}
如果我们使用低于Java 8版本的Java开发Spring应用,又想声明多个@PropertySource,则需要借助@PropertySources的帮助了:
@PropertySources({@PropertySource(classpath:1.properties),@PropertySource(classpath:1.properties),...
})
public class XConfiguration{...
}
3、@Import与ImportResource
在XML形式的配置中,我们通过< import resource=“XXX.xml” />的形式将多个分开的容器配置合到一个配置中,在JavaConfig形式的配置中,我们则使用@Import这个Annotation完成同样目的:
@Configuration
@Import(MockConfiguration.cass)
public class XConfiguration{...
}
@Import只负责引入JavaConfig形式定义的IoC容器配置,如果有一些遗留的配置或者遗留系统需要以XML形式来配置(比如dubbo框架),我们依然可以通过@ImportResource将它们一起合并到当前JavaConfig配置的容器中:
@Configuration
@Import(MockConfiguration.class)
@ImportResource("...")
public class XConfiguration{...
}
那些高曝光的Annotation(@ComponentScan、@PropertySource与@PropertySources、@Import与ImportResource)相关推荐
- Spring的新注解——Configuration、ComponentScan、Bean、Import、PropertySource || spring整合Junit分析
spring中的新注解 spring整合Junit分析 1.应用程序的入口 main方法 2.junit单元测试中,没有main方法也能执行 junit集成了一个main方法 ...
- APP高曝光率到智能化投放,SDK猫眼信息流广告的投放策略!
随着移动设备和社交媒体的普及,越来越多的人开始通过信息流获取新闻.娱乐和其他内容.信息流广告是一种以自然的方式呈现在用户浏览的内容中,以吸引用户点击的广告形式. 除此之外,各种类型的媒体也开始将其自 ...
- @Value,@ConfigurationProperties,@EnableConfigurationProperties,@PropertySource,@PropertySources
@Value 注解可以用来将外部的值动态注入到 Bean 中,在 @Value 注解中,可以使用 ${} 或 #{}.${} 与 #{} 的区别如下: (1)@Value("${}" ...
- 好内容如何获得高曝光?这几款软件帮助你
在新媒体运营行业,有两大法宝,一个就是内容的水平,好的内容会让你的作品得到很高的评价,但是同时,如果想要短时间内获得高曝光度,那就需要好的形式来呈现.新媒体运营中,有7个工具能快速地提升运营工作的效率 ...
- 亚马逊站外引流如何做?解析厨电大卖的高曝光秘诀
众所周知,亚马逊大部分的卖家会以站内引流为主,但是站外引流做的好 也是起到锦上添花的作用,而且在一些重要的节点 站外引流是一个非常好的方式.今天给大家以厨电用品大卖的案例给大家解析一下 他们是怎么去操 ...
- bean的后处理器和beanfactory的后处理器、Aware和InitializingBean、初始化和销毁
目录 Bean的后处理器 AutowiredAnnotationBeanPostProcessor运行分析 BeanFactory的后置处理器 @ComponentScan @Bean @Compon ...
- 【第五讲】BeanFactory 后处理器
第五讲 BeanFactory 后处理器 BeanFactory 后处理器的作用:为BeanFactory提供扩展 常见的BeanFactory后处理器 文章目录 第五讲 BeanFactory 后处 ...
- Redis Sentinel安装与部署,实现redis的高可用
Redis Sentinel安装与部署,实现redis的高可用 原文:Redis Sentinel安装与部署,实现redis的高可用 前言 对于生产环境,高可用是避免不了要面对的问题,无论什么环境.服 ...
- 高并发-【抢红包案例】之一:SSM环境搭建及复现红包超发问题
文章目录 概述 抢红包案例 案例关注点 工程结构 库表设计 Domain Dao层实现 Service层实现 使用全注解搭建SSM 开发环境 Controller层 View层 运行测试 超量发送的B ...
最新文章
- Python中的find()
- C#微信公众平台开发—高级群发接口
- 买淘宝特价版,产业升级的证明
- mysql 自己写数据库,自己写了一个简单的mysql数据库连接类
- 诗歌rails 之with_options
- 把一个结构体当做属性后碰到的问题
- java分割汉字_Java分割中英文,并且中文不能分割一半?
- ironpython2.7.8相当于python3.7吗_IronPython与numpy的Python速度之比较
- VIM编辑器使用图解
- linux tr 命令_在Linux中使用tr命令玩角色
- LCA Tarjan
- 机器学习: 最大似然估计 (MLE) 最大后验概率(MAP)
- Canoco5绘制漂亮的DCA或CCA图
- Minor GC ,Full GC 触发条件
- 创业感悟:有舍才会得,舍得才见风景
- 同步调用、异步调用、回调的简单理解
- Linux笔记本电脑大调查:程序员最喜欢的电脑是什么配置?
- AirPods Pro 卡顿或突然没声音的原因之一
- Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a09_扩展内存
- Maven中央仓库地址