那些高曝光的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)相关推荐

  1. Spring的新注解——Configuration、ComponentScan、Bean、Import、PropertySource || spring整合Junit分析

    spring中的新注解 spring整合Junit分析 1.应用程序的入口       main方法 2.junit单元测试中,没有main方法也能执行     junit集成了一个main方法    ...

  2. APP高曝光率到智能化投放,SDK猫眼信息流广告的投放策略!

    ​随着移动设备和社交媒体的普及,越来越多的人开始通过信息流获取新闻.娱乐和其他内容.信息流广告是一种以自然的方式呈现在用户浏览的内容中,以吸引用户点击的广告形式. 除此之外,各种类型的媒体也开始将其自 ...

  3. @Value,@ConfigurationProperties,@EnableConfigurationProperties,@PropertySource,@PropertySources

    @Value 注解可以用来将外部的值动态注入到 Bean 中,在 @Value 注解中,可以使用 ${} 或 #{}.${} 与 #{} 的区别如下: (1)@Value("${}" ...

  4. 好内容如何获得高曝光?这几款软件帮助你

    在新媒体运营行业,有两大法宝,一个就是内容的水平,好的内容会让你的作品得到很高的评价,但是同时,如果想要短时间内获得高曝光度,那就需要好的形式来呈现.新媒体运营中,有7个工具能快速地提升运营工作的效率 ...

  5. 亚马逊站外引流如何做?解析厨电大卖的高曝光秘诀

    众所周知,亚马逊大部分的卖家会以站内引流为主,但是站外引流做的好 也是起到锦上添花的作用,而且在一些重要的节点 站外引流是一个非常好的方式.今天给大家以厨电用品大卖的案例给大家解析一下 他们是怎么去操 ...

  6. bean的后处理器和beanfactory的后处理器、Aware和InitializingBean、初始化和销毁

    目录 Bean的后处理器 AutowiredAnnotationBeanPostProcessor运行分析 BeanFactory的后置处理器 @ComponentScan @Bean @Compon ...

  7. 【第五讲】BeanFactory 后处理器

    第五讲 BeanFactory 后处理器 BeanFactory 后处理器的作用:为BeanFactory提供扩展 常见的BeanFactory后处理器 文章目录 第五讲 BeanFactory 后处 ...

  8. Redis Sentinel安装与部署,实现redis的高可用

    Redis Sentinel安装与部署,实现redis的高可用 原文:Redis Sentinel安装与部署,实现redis的高可用 前言 对于生产环境,高可用是避免不了要面对的问题,无论什么环境.服 ...

  9. 高并发-【抢红包案例】之一:SSM环境搭建及复现红包超发问题

    文章目录 概述 抢红包案例 案例关注点 工程结构 库表设计 Domain Dao层实现 Service层实现 使用全注解搭建SSM 开发环境 Controller层 View层 运行测试 超量发送的B ...

最新文章

  1. Python中的find()
  2. C#微信公众平台开发—高级群发接口
  3. 买淘宝特价版,产业升级的证明
  4. mysql 自己写数据库,自己写了一个简单的mysql数据库连接类
  5. 诗歌rails 之with_options
  6. 把一个结构体当做属性后碰到的问题
  7. java分割汉字_Java分割中英文,并且中文不能分割一半?
  8. ironpython2.7.8相当于python3.7吗_IronPython与numpy的Python速度之比较
  9. VIM编辑器使用图解
  10. linux tr 命令_在Linux中使用tr命令玩角色
  11. LCA Tarjan
  12. 机器学习: 最大似然估计 (MLE) 最大后验概率(MAP)
  13. Canoco5绘制漂亮的DCA或CCA图
  14. Minor GC ,Full GC 触发条件
  15. 创业感悟:有舍才会得,舍得才见风景
  16. 同步调用、异步调用、回调的简单理解
  17. Linux笔记本电脑大调查:程序员最喜欢的电脑是什么配置?
  18. AirPods Pro 卡顿或突然没声音的原因之一
  19. Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a09_扩展内存
  20. Maven中央仓库地址

热门文章

  1. java 动态二维数组,菜鸟求助: 二维数组如何实现动态接收?
  2. phpstudy免费安全检测服务_@你,您有一份免费安全服务已到账
  3. sonarqube使用maven进行代码分析
  4. MySQL导入MongoDB
  5. js代码格式化工具(格式化、压缩、加密压缩)
  6. RN通信机制和渲染流程
  7. React Native 交互管理器InteractionManager
  8. LeetCode(232)——用栈实现队列(JavaScript)
  9. 【Node学习】—Node.js中模块化开发的规范
  10. 二套房贷款首付比例?