最新要闻
- 我国累计落实补偿补助资金近270亿元用于长江禁渔退捕渔民安置
- NVIDIA RTX VSR脑补网络视频:标清秒变4K超高清!
- 每日资讯:离谱!男子邮政寄房产证71天仍未送达
- 今日热门!AMD锐龙9 7000X3D正式开卖!价格、性能、功耗三杀13900KS
- 热讯:restaurants怎么读英语发音_restaurants怎么读
- 当前要闻:90后女孩奋斗14年从服务员到博士生 要释放所有潜力:网友感慨太强
- 热门看点:地铁告示牌提醒“严禁黑车及马自达占用停放”引争议 南京官方解释尴尬
- 日本女歌手黑崎真音因病去世 年仅35岁
- 每日关注!沙特土豪要造巨型科幻建筑了:这次是世界最大立方体
- 当前信息:搭载全新12代酷睿N200处理器轻薄本仅 2599元!攀升笔记本开学季促销
- 数学家的小故事五十字_50 100字数学家的小故事
- 焦点播报:曾致2死3伤 特斯拉潮州事故鉴定结果已出:目前不会进行公布
- 微软与谷歌正面扳手腕:计划推出自家移动应用商店
- 【世界时快讯】放生大鱼游回岸边“致谢”放生者?别自作多情了 800万粉大V科普
- 焦点热议:卷死燃油车!新能源价格战打起来了:“迪王”都已坐不住
- 长安控诉银河之光抄袭背后 两家车企的设计师都是陈政
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
快资讯丨Spring IOC官方文档学习笔记(十三)之环境概要
1.profiles
(相关资料图)
(1) profiles提供了一种在不同环境(Environment)下注册不同的bean的机制,如下
//假定现在我们存在开发和生产两个环境,每种环境下ExampleA所需的url都是不同的,那么我们就可以使用@Profile注解,来声明在哪种环境下该注入哪种bean@Configurationpublic class Config { //development环境下注入该bean @Bean @Profile("development") public ExampleA exampleAForDevelopment() { return new ExampleA("http://127.0.0.1:8080"); } //production环境下注入该bean @Bean @Profile("production") public ExampleA exampleAForProduction() { return new ExampleA("http://192.168.7.70:8080"); }}
@Profile属性值不仅可以为一个字符串值,亦可以为一个表达式,规则如下:
! : 逻辑非
| : 逻辑或
& : 逻辑与
@Configurationpublic class Config { //使用逻辑或,声明在development或test环境下注入这个bean ExampleA @Bean @Profile("development | test") public ExampleA exampleAForDevelopment() { return new ExampleA("http://127.0.0.1:8080"); } //声明在production环境下且online或offline中至少某一种环境被激活下注入这个bean @Bean @Profile("production & (online | offline)") public ExampleA exampleAForProduction() { return new ExampleA("http://192.168.7.70:8080"); }}//例一:只声明profile为production,观察打印结果,可见未有任何ExampleA被注入到容器中AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();//使用Environment中的setActiveProfiles方法来设置激活哪一个profilectx.getEnvironment().setActiveProfiles("production");ctx.register(Config.class);ctx.refresh();Arrays.stream(ctx.getBeanDefinitionNames()).forEach(System.out::println);//例二:指定多个配置信息,观察打印结果,可见两个ExampleA都被注入到容器中//setActiveProfiles方法可同时激活多个profilectx.getEnvironment().setActiveProfiles("production", "online", "test");
(2) @Profile注解可用作元注解,用于创建自定义组合注解
//下面这个@Production注解,等价于@Profile("production")注解@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Profile("production")public @interface Production {}
(3) 对于重载的@Bean方法,@Profile会先校验其中的第一个方法,如果它不通过,则后面所有它的重载方法也全部不通过,否则,在上一个重载方法通过后,它才会继续接下来的剩余重载方法的校验,例子如下
//该Config类中有两个重载方法exampleA,它们的profile属性值不相同@Configurationpublic class Config { @Bean @Profile("dev") public ExampleA exampleA(@Value("aaa") String str) { return new ExampleA(); } @Bean @Profile("prod") public ExampleA exampleA() { return new ExampleA(); }}//先设置active-profile为prod,如下,启动容器,会发现容器抛出NoSuchBeanDefinitionException异常,这就是因为容器先校验了exampleA(String str)这个方法,发现它的profile为dev,不符,因此,后面的它的重载方法exampleA()也直接不通过,故而没有一个ExampleA实例被装入到容器中AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();ctx.getEnvironment().setActiveProfiles("prod");ctx.register(Config.class);ctx.refresh();System.out.println(ctx.getBean(ExampleA.class));//对于上面的例子,我们只颠倒Config类中两个方法的位置,如下@Configurationpublic class Config { @Bean @Profile("prod") public ExampleA exampleA() { return new ExampleA(); } @Bean @Profile("dev") public ExampleA exampleA(@Value("aaa") String str) { return new ExampleA(); }}//然后,再次启动容器,会发现我们获得了一个ExampleA实例,这就是因为容器先校验了exampleA(),其profile值与active-profile值一致,通过,接下来校验exampleA(String str),结果不通过,因此会有一个ExampleA实例被注入到容器中
(4) 在基于xml的配置中,我们可以指定
(5) 在前面的例子中,我们已经看到了,可通过Environment中的setActiveProfiles()方法来选择激活某一个或多个profile,除此之外,我们还可以通过配置spring.profiles.active的属性值来声明激活哪些profile,这个spring.profiles.active可在springboot项目中的yml配置文件中进行配置,或通过jvm系统参数来进行配置,如下
(6) profile的默认属性值为default,可通过Environment中的setDefaultProfiles()方法或指定spring.profiles.default的属性值来进行修改
//@Profile("default")代表启用默认配置,即如果当前Environment中没有任何profile被指定,那么这个bean就会被添加到容器中,反之,如果指定了任何profile,那么这个bean就会被排除在外@Configuration@Profile("default")public class Config { @Bean public ExampleA exampleA() { return new ExampleA(); }}
2.PropertySource概要
未完待续...
-
快资讯丨Spring IOC官方文档学习笔记(十三)之环境概要
1 profiles(1)profiles提供了一种在不同环境(Environment)下注册不同的bean的机制,如下 假定现在我...
来源: 快资讯丨Spring IOC官方文档学习笔记(十三)之环境概要
我国累计落实补偿补助资金近270亿元用于长江禁渔退捕渔民安置
NVIDIA RTX VSR脑补网络视频:标清秒变4K超高清!
每日资讯:离谱!男子邮政寄房产证71天仍未送达
今日热门!AMD锐龙9 7000X3D正式开卖!价格、性能、功耗三杀13900KS
热讯:restaurants怎么读英语发音_restaurants怎么读
【天天播资讯】SpringBoot项目多层级多环境yml设计
天天热头条丨Kubernetes(K8S)应用案例
当前要闻:90后女孩奋斗14年从服务员到博士生 要释放所有潜力:网友感慨太强
热门看点:地铁告示牌提醒“严禁黑车及马自达占用停放”引争议 南京官方解释尴尬
日本女歌手黑崎真音因病去世 年仅35岁
世界时讯:04if分支语句
每日关注!沙特土豪要造巨型科幻建筑了:这次是世界最大立方体
当前信息:搭载全新12代酷睿N200处理器轻薄本仅 2599元!攀升笔记本开学季促销
Rust 知识积累(2)
环球观速讯丨Luffy项目:3、前端调整(全局css、全局配置、全局axios...),后端主页轮播图表设计,接口部分代码编写
世界热消息:pycharm破解版
环球精选!变量处理中的标准化方法
数学家的小故事五十字_50 100字数学家的小故事
焦点播报:曾致2死3伤 特斯拉潮州事故鉴定结果已出:目前不会进行公布
微软与谷歌正面扳手腕:计划推出自家移动应用商店
【世界时快讯】放生大鱼游回岸边“致谢”放生者?别自作多情了 800万粉大V科普
焦点热议:卷死燃油车!新能源价格战打起来了:“迪王”都已坐不住
长安控诉银河之光抄袭背后 两家车企的设计师都是陈政
高并发场景下常见的限流算法及方案介绍
组合数学笔记-计数原理
索尼WF-1000XM4降噪豆发布新固件:可同时连接2台设备
全球报道:女子帮网友表白:单日收入过万
享36个月超长质保!魅族20系列1元超前预订开启:立省699元
《福星小子》新动画角色公开 3月2日最新话登场
身材抢眼!75岁“终结者”施瓦辛格首演电视剧:经典台词“我回来了”
记录--如何优雅地校验后端接口数据
世界今亮点!New Bing怼人、说谎、PUA,ChatGPT已经开始胡言乱语了
要闻:全新起亚K3开启预售 新款起亚K3怎么样?
今热点:只要78元!《元能失控》登陆任天堂国行Switch:支持多人联机 太罕见
今日热闻!累计订单已超5万!比亚迪豪华MPV腾势D9 EV官宣涨价6000元
送女神绝佳好礼 好吃还能发圈!榴芒一刻礼盒大促:立减179元
环球速讯:恐怖!男子酒后吃布洛芬致皮肤大面积剥脱 医生:重度药疹
焦点滚动:另起炉灶?马斯克怒批ChatGPT 欲开发替代品
全球播报:Rust 知识积累(1)
世界百事通!让WPF中的DataGrid像Excel一样可以筛选
全球头条:Codeforces Round #854 by cybercats (Div. 1+2) 1799 A~G 题解
全球报道:2363. 合并相似的物品
【天天速看料】c语言运算符优先级实例解析
资讯:建设银行e路通不用了直接扔了吗_建设银行e路通
恐怕人类永远也搞不定真正的AI!
环球时讯:黄仁勋带着NVIDIA新品发布会来了!RTX 4070梦碎
大量年轻人成为“果粉” :苹果连三星大本营都快攻陷了
精选!AGM G2 Guardian发布:全球首款500米范围热成像手机
全球时讯:不怕停电了?董明珠:格力开始研究将储能技术应用冰箱上
新消息丨.NET MAUI
外敷仙人掌的禁忌和副作用_外敷仙人掌的禁忌
环球热文:官宣定档3月6日 领创科技旗舰荣耀Magic5系列即将国内亮相
需要去看医生的呼噜声什么样?这三种情况要特别注意:有危险
蔚来:阿尔卑斯全系车型采用800V方案 还将共享使用三代换电站
【全球新视野】男子反复发烧20多天被诊出黑热病:发病率仅0.0108/10万
环球快报:一加Buds Pro 2轻享版上架:48dB深度降噪
今热点:11 款顶级 MySQL 图形化工具汇总,总有一款适合你!(建议收藏)
【速看料】Python实战项目3-前后端连接/首页轮播图表设计
热头条丨剑指 Offer 55 - II. 平衡二叉树(java解题)
焦点速讯:安装node并创建vue项目
报告称每天工作超8小时心脏病风险增8成:很多公司拒绝996、启用四天工作制
比亚迪专业个性化品牌曝光:首车性能对标奔驰大G 年内发布
苹果将成本转嫁给果粉!2024年iPad Pro要大涨价
LOL帧率近乎翻倍!Intel Arc A750新驱动测试:大幅提升、最大短板没有了
丰田有队友了!宝马氢燃料SUV将路试:16磅氢能跑500公里
世界速读:CSS中的BFC、IFC、GFC、FFC
环球即时:Synchronized,我要一层一层剥开你的心
全球视点!轻松玩转makefile|基础知识
环球聚焦:曝吴秀波儿子家暴成性,女方晒照满嘴是血,指证男方出轨乱约
周杰伦演唱会数百万人疯抢!演唱会门票30秒卖光
环球新资讯:长安发律师函控诉银河之光抄袭 吉利回应:毫无根据、误导公众
环球微速讯:【同步、共享和内容协作软件】上海道宁与ownCloud让您的团队随时随地在任何设备上轻松处理数据
全白外观拥有硬核实力!影驰Z790金属大师D5 Wi-Fi白金版主板评测:内存轻松提速10%
环球快讯:越来越多PC用户不愿买显卡了:2022年Q4桌面独显销量暴跌43%
世界第一次!中国空间站看到了在轨航天员的“三维皮肤”
【时快讯】89元 小米无线键鼠套装2上架:鼠标轻至45g
环球精选!运酒撞破酒缸1分钟损失5万!男子:一坛酒1000斤 1斤50块钱
天天快看点丨易基因|独家分享:高通量测序后的下游实验验证方法——DNA甲基化篇
IPO参考:联域光电拟深市主板IPO 郝氏控股二次递表港交所
【全球快播报】感冒的食疗偏方秘方_感冒的食疗偏方
8尺夫人面对面!《生化危机8 VR》IGN 8分 MTC用户9.7分
环球热点评!40多万的车没有语音控制功能!宝马遭X3车主集体投诉
今日聚焦!一加Ace 2V搭载旗舰级2.8D微弧玻璃:手感温润如玉
世界讯息:续航1整年!小米智能门锁M20大屏猫眼版开售:首发1899元
世界要闻:《艾尔登法环》原子之心机械姐妹花Mod 性感吸睛
自得其乐是什么意思?自得其乐的名人例子有哪些?
12%是零点几?12%公积金是什么档次?
给据邮件是什么意思?给据邮件如何填写?
男主角性格冰冷的小说有哪些?男主角性格冰冷的小说推荐
兔子能喝牛奶吗?兔子吃的食物有哪些?
小米手机屏幕校准在哪里?小米手机屏幕有多大?
集成显卡可以玩英雄联盟吗?集成显卡和独立显卡有什么区别?
华为mate9哪一年生产的?华为mate9参数配置
可视化图表之奥妙——百分比堆积条形图
看热讯:基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.2版已发布
常用的xpath
环球观察:mybatis plus映射postgreSQL数组
世界资讯:redis实现用户查询次数限制
军用三防手机有哪些?军用三防手机推荐