Spring框架的本质:4那些高曝光率的Annotation
我们看几个比较常见的Annotation,便于后面更好的理解spring框架的奥秘做准备
@ComponentScan
对应XML配置形式中的<context: component-scan>元素,用于配合一些元信息Java Annotation,比如@Component和@Repository等,将标注了这些元信息Annotation的bean定义类批量采集到Spring的IoC容器中。
我们可以通过basePackages等属性来细粒度定制@ComponentScan自动扫描的范围,如果不指定,则默认Spring框架实现会从声明@ComponentScan所在的pakcage进行扫描。
@ComponentScan是SpringBoot框架魔法得以实现的一个关键组件,大家可以重点关注,我们后面还会遇到它。
@PropertySource 与 @PropertySouorces
@PropertySource用于从某些地方加载*.properties文件内容,并将其中的属性加载到IoC容器中,便于填充一些bean定义属性的占位符(placeholder),当然,这需要PropertySourcesPlaceholderConfigurer的配合。
如果我们使用Java8或者更高版本开发,那么,我们可以并行声明多个@PropertySource:
@Configuration
@PropertySource("classpath:1.properties")
@PropertySource("classpath:2.properties")
@PropertySource("...")
public class XConfiguration{...
}
如果我们使用低于Java8版本的Java开发Spring应用,又想声明多个@PropertySource,则需要借助@PropertySources的帮助了:
@PropertySources({@PropertySources("classpath:1.properties"),@PropertySource("classpath:2.properties"),...
})
public class XConfiguration{...
}
@Import 与@ImportResource
在XML形式的配置中,我们通过的形式将多个分开的容器配置合到一个配置中,在JavaConfig形式的配置中,我们则使用@Import这个Annotation完成同样的目的:
@Configuration
@Import(MockConfiguration.class)
public class XConfiguration{...
}
@Import只负责引入JavaConfig形式定义的IoC容器配置,如果有一些遗留的配置或者遗留系统需要以XML形式来配置(比如Dubbo框架),我们依然可以通过@ImportResource将它们一起合并到当前JavaConfig配置的容器中:
@Configuration
@Import(MockConfiguration.class)
@ImportResource("...")
public class XConfiguration{...
}
Spring框架的本质:4那些高曝光率的Annotation相关推荐
- APP高曝光率到智能化投放,SDK猫眼信息流广告的投放策略!
随着移动设备和社交媒体的普及,越来越多的人开始通过信息流获取新闻.娱乐和其他内容.信息流广告是一种以自然的方式呈现在用户浏览的内容中,以吸引用户点击的广告形式. 除此之外,各种类型的媒体也开始将其自 ...
- SpringBoot-探索回顾Spring框架本质
自始至终,SpringBoot框架都是为了能够帮助使用Spring框架的开发 快速高效地构建 一个个基于Spring框架以及Spring生态体系的应用解决方案.要深刻理解SpringBoot框架,首先 ...
- 提高商品曝光率增加销量,从这几点做起
高曝光率可以为商家带来高的点击量,分销商城首页的商品被人看到的可能性更大,准确的产品被人搜到的可能性更大.所以要有高的曝光率就需要做好产品相关的准备工作,具体有哪些呢?下面就由小编为大家分享提高分销商 ...
- Java面试前看看一篇就不怕问Spring框架了
1 Spring核心组件 一句话概括:Spring是一个轻量级.非入侵式的控制反转(IoC)和面向切面(AOP)的框架. Spring 版本 JDK版本 1.x 1.3:引入了动态代理机制,AOP 底 ...
- 阿里三面让我现场改造Spring框架,明天带他去爬山!
作为一个Java程序员,提到开源框架,Spring无疑是绕不过去的门槛,相信大家对它都不陌生,或多或少都用过. 但是如果谈到改造Spring框架,实现它的自定义扩展,以及大厂面试必问的源码,很多人就会 ...
- 那些高曝光的Annotation(@ComponentScan、@PropertySource与@PropertySources、@Import与ImportResource)
那些高曝光的Annotation 1.@ComponentScan @ComponentScan对应于XML配置形式中的< context:component-scan >元素,用于配合一 ...
- ❤️六万字《Spring框架从入门到精通》(建议收藏)❤️
❤️ Spring 代码:https://github.com/Donkequan/Spring-Study ❤️ 希望各位博友三连+关注!!! 1.简介 spring理念:是现有的技术更加容易使用, ...
- spring框架_IOC_DI_AOP_MVC
本文注解总结:注解收录集 Spring框架 一.Spring介绍 二.Spring-`IOC` 2.1 IOC调用原理图 2.2 Spring-IOC 配置文件方式 2.2.1 准备Dog类 2.2. ...
- 2022年Java应届生面试之Spring框架基础知识
前言:工作的原因,最近没有及时更新相关系列.很抱歉!在复习Spring框架的同时也别忘了j2ee的相关知识理论wo~ 大家好!我是JAVA 中的Spring框架,我是一个开源的容器性质的轻量级框架. ...
- spring框架_03
目录 文章目录 目录 第一章 AOP概述 1.什么是AOP? [1]AOP定义 [2]具象化理解 2.AOP的优势及使用场景 [1]优势 [2]使用场景 3.AOP实现原理 第二章 代理模式 1.代理 ...
最新文章
- 微软资深算法工程师为AI初学者量身打造的机器学习入门书上市啦!
- TensorFlow 调用预训练好的模型—— Python 实现
- DNS攻击的主要方式
- Mageia 7 Beta 3 发布,Mandriva Linux 社区分支
- Bzoj4480: [Jsoi2013]快乐的jyy 广义后缀自动机 倍增 哈希 manacher
- Nginx源码分析 - 主流程篇 - 多进程实现(14)
- linux 清空history以及记录原理
- c#调用python脚本效率_C# 调用python程序脚本(IronPython)
- WinAPI之ReleaseSemaphore
- 区块链重要基础知识2——哈希函数的原理以及应用于区块头部
- Vue脚手架、镜像源下载及使用
- 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow第2版》-学习笔记(9):无监督学习技术
- apex 安装/使用 记录
- 少吃柿子、山楂、黑枣,警惕鞣酸
- 2021年“亿级”体量产品的五大发展趋势
- 树莓派+USB摄像头+Yeelink--5分钟内DIY你自己的家庭监控
- UVa Online Judge 工具網站
- 智慧风电:数字孪生 3D 风机智能设备运维
- 【2023 年第十三届 MathorCup 高校数学建模挑战赛】 B 题 城市轨道交通列车时刻表优化问题 42页论文及代码
- Leveldb学习笔记:leveldb的使用与原理探究
热门文章
- 【mobile】安卓图案解锁尝试次数过多导致 要解锁需要GOOGLE账户登录,解决方案...
- [转]如何用SQL命令修改字段名称
- Bean被IoC容器销毁后还能使用吗?
- Linux之常用操作命令总结一
- CGI,FASTCGI,PHP-CGI,PHP-FPM 概念
- Linux20180421五周第二次课(4月19日)
- IEEE-SA董事刘东:开放+开源将带来新一波SDNFV创新
- Linux重定向和管道的基础学习
- 你的服务器安全么?--服务器防渗透(1)
- Windows UWP开发系列 – 控件默认样式