最新要闻
- Wii U和3DS在线游戏商店关闭前:玩家花15万328天买下所有游戏
- 2022年 全国坐火车的少了36.4%!高铁已达4.2万公里
- 日本东电直播用核污水养鱼 海外网友直言:留着自己吃吧
- 环球热点评!旗舰级LCD护眼屏+120W独此一款!iQOO Z7发布:1599元
- 全球热议:6000mAh同档位续航无敌!iQOO Z7x发布:1299元起
- 便宜卡终于有了!好队友抢跑:RTX 4070/4060来也
- 9999元 AOC爱攻新款48寸显示器上架:4K OLED屏、138Hz高刷
- 当前快讯:死亡细胞将登陆Android端
- 【世界新视野】抗早泄药物盐酸达泊西汀国内正式上市:效果最好!订单超4000万元
- 天天通讯!1994《小美人鱼》vs2023《小美人鱼》对比图火了:5月上映 你会看吗?
- 焦点消息!LCD党最好的选择!iQOO Z7定制旗舰级LCD屏:超级护眼
- 今日热闻!神秘光点划过美国加州夜空 专家:或为日本太空垃圾
- 【世界新要闻】正式签约石墨烯之父 超威电池三大单品发布
- 网传凯迪拉克中控屏行驶中弹窗广告 车主:烦死了
- 热点!多益网络:前女高管们利用网络水军造假 导致公司损失5亿元
- 全球即时看!速干短袖+短裤:骆驼运动套装79元狂促(300元大额券)
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
焦点播报:Spring IOC官方文档学习笔记(十四)之ApplicationContext的其他功能
(资料图片)
1.使用MessageSource
(1) 有时,我们的项目可能会面临国际化需求,例如:对不同国家的人,我们需返回不同语言的消息,而java本身已经给我们提供了ResourceBundle类实现国际化的需求,如下
//在resources目录下,新建两个配置文件,分别为message_en_us.properties和message_zh_cn.properties,内容如下//message_en_us.properties文件中配置如下country=us//message_zh_cn.properties文件中配置如下,注意对中文使用unicode编码country=\u4e2d\u56fd//现在,我们希望我们的项目在不同的国家返回不同的country信息,那么就可以使用ResourceBundle类了,如下public static void main(String[] args) { //使用ResourceBundle加载的文件都必须放置在resources根目录下,因此我们的message_en_us.properties和message_zh_cn.properties文件都位于resources根目录,而且这些文件都必须按照${name}_${language}_${region}的方式来命名,因为这种命名方式正好能对应ResourceBundle.getBundle()方法中的参数,例如ResourceBundle.getBundle("message", new Locale("zh", "cn")),其中,message对应${name},zh对应${language},cn对应${region},即ResourceBundle.getBundle("message", new Locale("zh", "cn"))这个方法会读取我们的message_zh_cn.properties配置文件,这样我们就可以根据不同的参数来读取不同的文件,达到国际化的目的 //未指定它的Locale,因此java获取它当前所在的地区,为cn ResourceBundle DefaultBundle = ResourceBundle.getBundle("message"); System.out.println(DefaultBundle.getString("country")); //指定地区为cn ResourceBundle cnBundle = ResourceBundle.getBundle("message", new Locale("zh","cn")); System.out.println(cnBundle.getString("country")); //指定地区为us ResourceBundle uSbundle = ResourceBundle.getBundle("message", new Locale("en","us")); System.out.println(uSbundle.getString("country"));}//打印结果如下,通过ResourceBundle实现了国际化中国中国us
(2) Spring提供了MessageSource来帮助我们实现国际化功能,具体的使用方法同jdk中的ResourceBundle,如下
//在resources目录下,新建两个配置文件,分别为message_en.properties和message_zh.properties,内容如下//message_en.properties文件中配置如下country=us//message_zh.properties文件中配置如下country=中国 message
UTF-8 //ApplicationContext继承了MessageSource接口MessageSource messageSource = new ClassPathXmlApplicationContext("beans.xml");//指定不同的语言,来获取不同消息String zh = messageSource.getMessage("country", null, Locale.CHINESE);System.out.println(zh);String en = messageSource.getMessage("country", null, Locale.ENGLISH);System.out.println(en);//启动容器,输出如下中国us
(3) Spring的MessageSource还提供了占位符功能,来进行消息内容的填充,如下例所示
//向message_zh.properties中添加配置项如下,{0}表示第一个占位符,还有{1},{2}等等,以此类推argument=we need {0}//main函数MessageSource messageSource = new ClassPathXmlApplicationContext("beans.xml"); //Object[]指定向占位符填充的内容String argument = messageSource.getMessage("argument", new Object[]{"蛋糕"}, Locale.CHINESE);System.out.println(argument);//启动后,打印如下we need 蛋糕
2.标准和自定义事件
(1) Spring中的事件是通过ApplicationEvent类和ApplicationListener接口提供的,如果一个bean实现了ApplicationListener接口,那么每当一个ApplicationEvent发布到Spring中时,都会通知该bean
(2) Spring中内置事件
事件 | 说明 |
---|---|
ContextRefreshedEvent | 容器初始化或刷新时(refresh)时发布该事件 |
ContextStartedEvent | 通过调用ConfigurationApplicationContext接口中的start()方法启动容器时发布该事件 |
ContextStoppedEvent | 通过调用ConfigurationApplicationContext接口中的stop()方法停止容器时发布该事件 |
ContextClosedEvent | 通过调用ConfigurationApplicationContext接口中的close()方法或jvm关闭钩子关闭容器时发布该事件 |
RequestHandledEvent | 适用于使用了DispatcherServlet的web环境中,在请求完成后发布该事件,用于告知所有的bean已经为http请求提供了服务 |
ServletRequestHandledEvent | RequestHandledEvent的子类,其中添加了Servlet特定信息 |
(3) 示例如下
//现在假设有一个用户注册事件,每当一个用户注册后,进行相应的其他操作(如发送邮件等等)//自定义事件,需继承ApplicationEventpublic class RegisterEvent extends ApplicationEvent { private String username; public RegisterEvent(Object source,String username) { super(source); this.username = username; } public String getUsername() { return username; }}//使用ApplicationEventPublisher中的publishEvent()方法来向容器中发布一个事件@Servicepublic class RegisterService implements ApplicationEventPublisherAware { private ApplicationEventPublisher publisher; @Override public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) { this.publisher = applicationEventPublisher; } //publishEvent()方法会阻塞,直到所有的监听器都完成了对事件的处理 public void finishRegister(String username) { this.publisher.publishEvent(new RegisterEvent(this, username)); }}//实现ApplicationListener接口,实现某种类型事件的监听者@Componentpublic class RegisterLister implements ApplicationListener { //每当有一个RegisterEvent事件发布后,都会触发该回调 @Override public void onApplicationEvent(RegisterEvent registerEvent) { System.out.println("用户:" + registerEvent.getUsername() + "完成注册..."); //do other things,such as send emails }}//mainConfigurableApplicationContext ctx = new AnnotationConfigApplicationContext("cn.example.spring");String username ="zpc";ctx.getBean(RegisterService.class).finishRegister(username);//启动后,容器打印如下,可见Spring使用了观察者模式,来实现了一个事件发布与订阅的功能用户:zpc完成注册...
关键词:
-
焦点播报:Spring IOC官方文档学习笔记(十四)之ApplicationContext的其他功能
1 使用MessageSource(1)有时,我们的项目可能会面临国际化需求,例如:对不同国家的人,我们需返回不同...
来源: 行人车辆检测与计数系统(Python+YOLOv5深度学习模型+清新界面)
焦点播报:Spring IOC官方文档学习笔记(十四)之ApplicationContext的其他功能
如何上传一个npm包
中债金融终端上线“货币经纪行情”功能
瑞信风波由股及债 此前已有分析师提示“AT1”风险
Wii U和3DS在线游戏商店关闭前:玩家花15万328天买下所有游戏
2022年 全国坐火车的少了36.4%!高铁已达4.2万公里
环球热点!基于深度学习的口罩检测系统(Python+清新界面+数据集)
【环球新视野】自律|坚持,是因为不喜欢
Java内部类笔记整理
全球快资讯丨永磁同步电机驱动系统—相关方向思考
焦点要闻:HTTP 状态码与课程总结
日本东电直播用核污水养鱼 海外网友直言:留着自己吃吧
环球热点评!旗舰级LCD护眼屏+120W独此一款!iQOO Z7发布:1599元
全球热议:6000mAh同档位续航无敌!iQOO Z7x发布:1299元起
便宜卡终于有了!好队友抢跑:RTX 4070/4060来也
9999元 AOC爱攻新款48寸显示器上架:4K OLED屏、138Hz高刷
当前快讯:死亡细胞将登陆Android端
环球快看点丨波动数列
瑞银收购瑞信意外“引爆”AT1债券市场 对冲基金不计成本抛售避险
【世界新视野】抗早泄药物盐酸达泊西汀国内正式上市:效果最好!订单超4000万元
天天通讯!1994《小美人鱼》vs2023《小美人鱼》对比图火了:5月上映 你会看吗?
焦点消息!LCD党最好的选择!iQOO Z7定制旗舰级LCD屏:超级护眼
今日热闻!神秘光点划过美国加州夜空 专家:或为日本太空垃圾
【世界新要闻】正式签约石墨烯之父 超威电池三大单品发布
世界今热点:Python+selenium安装
全球即时看!【财经分析】“降准”落地利好信用债阶段表现 中期仍需关注多因素扰动风险
网传凯迪拉克中控屏行驶中弹窗广告 车主:烦死了
热点!多益网络:前女高管们利用网络水军造假 导致公司损失5亿元
全球即时看!速干短袖+短裤:骆驼运动套装79元狂促(300元大额券)
戴森空气净化耳机首发体验:6699元图一乐?
美知名媒体曝特斯拉大量负面:自动驾驶测试作假
焦点速看:这些AIGC工具有趣且实用
abc294G
设计原则
观热点:也等你 [表白墙] 发布!
天天即时:泰格医药董事ZHUAN YIN累计减持7.6万股 减持期限届满
【独家焦点】债市日报:3月20日
每日看点!爆火情侣竟不是真人!新版Midjourney效果爆炸 网友:太可怕了
全球即时看!宏碁搞“副业”?推出电动自行车Acer ebii:110公里超长续航
男子2年未办理个税汇算 被查后补税加罚金近10万
世界资讯:梦想和高薪你会如何选择?00后女生10秒拒绝8家公司
Microsoft Project教程_编程入门自学教程_菜鸟教程-免费教程分享
环球热头条丨Source Generator-扩充原有代码
8个不能错过的程序员必备网站,惊艳到我了!!!
即时焦点:瑞信全面减记AT1债券影响扩大 日债收益率午后全线下挫
新动态:令人血压飙升!一SUV高速快车道停车致多车连撞:后果惨烈
【世界播资讯】毕业典礼学校安排学生在操场吃席:画面仪式感拉满
环球焦点!宁德一家利润超韩国三大厂商 韩系电池厂商绝望:高端低端都打不过
全球观热点:《黑暗荣耀》全剧出现119次韩语粗口:韩剧总是那么吵!
观点:腾讯发布2022研发大数据报告:内部研发人员占比高达74%
【MySQL】InnoDB vs MyISAM
etcd 租约、Watch功能、分布式锁的golang实践
天天资讯:【工作动态】以培训促提升——医疗机构药品器械管理规范培训会
全球今头条!农垦系统继续开展带头扩种大豆油料行动
环球观速讯丨终于!清华团队的ChatGPT发布:国人用起来相当友好
网红阿秋将离开香港继续骑行:被盗走的8000元自行车仍未找回
即时焦点:男孩雷克萨斯4S店内开动展车连撞两车 律师:家长、店方都有责任
语音+App远程操控!天猫精灵智能插座探底好价:两件34元
当前播报:韩国40出头新娘人数比20岁还多:初婚男女平均年龄均创新高
【世界新要闻】华为交换机查看配置命令的方法
全球快讯:关于国产项目Apache Kylin 发展历程及背后的那些事
今热点:概率与期望入门
环球最新:通过python3启动WEB的方法传输文件
世界聚焦:chrony客户端发送时间戳随机问题
每日热点:混凝土强度两倍!科学家发明火星建屋材料:太空尘埃、土豆淀粉制成
你觉得是谁?博主称某日系合资品牌即将退出国内市场
要闻:不废话 真低价!途虎养车2023轮胎节启动:几百元能买静音胎
对标ChatGPT!文心一言云服务来了:百度官宣3月27日上线
主场比赛姆巴佩两失单刀:梅西多次妙传被浪费
世界快消息!jvm相关知识
全球观焦点:易基因:DNA甲基化研究的3大前期探索性实验思路|干货系列
全球报道:光大证券:LPR还将继续保持平稳
环球精选!迪士尼回应游客排挤玲娜贝儿演员:将核实处理 网友吐槽饭圈行为
女子骑电动车导航跑上高架一路逆行:不知道不能上高架
sd卡根目录是什么意思?sd卡根目录在哪里打开?
惠普的驱动程序在哪个文件夹?惠普sd驱动怎么下载?
高能少年团许魏洲抱杨紫是哪一期?高能少年团第二季为什么少了两期?
周杰为哪部奥特曼作品中配过音?周杰个人资料和简历
厨师罗拉是哪里人?厨师罗拉个人资料简介
每日精选:汽车脚垫天花板!男子直接在车内铺瓷砖:耐磨还方便打理
【世界速看料】小伙求加薪被拒将老板工程车弃河:松离合跳车、致损失27万
全球微资讯!女子点螺蛳粉外卖吃出整根蚯蚓 商家称其想吃霸王餐
多车企疯狂大降价 德国媒体:中国车市从没这么卷过
天天观天下!特斯拉高速行驶中AP突然关闭 方向盘助力诡异消失
最新资讯:ChatGPT4高分通过数据库系统工程师(DBA)认证
天天速读:瓦斯琪尔的任务_瓦斯琪尔前置任务
全球速读:女子超市遇电动购物车:30分钟5块钱!网友:比公园划船划算
最资讯丨文章抹黑造谣?特斯拉索赔500万元被判胜诉!媒体不服上诉
焦点!一部车骑十年 回顾绿源液冷电机发展史:三年创下吉尼斯世界纪录
交易履约之产品中心实践
天天实时:Spring Boot 如果防护 XSS + SQL 注入攻击 ?一文带你搞定!
【世界热闻】Python工具箱系列(二十七)
python高级用法之命名元组namedtuple
【世界速看料】大学生23万网购凯迪拉克二手车:开了俩月就冒烟 三大件全动过
499元 小米真无线降噪耳机3星战定制款发布:风暴兵标志太酷炫
每日快讯!ChatGPT推荐中国最宜居城市 成都第三长沙第一 认可吗
焦点!斗鱼回应36岁女子请假保胎被辞:并非针对孕妇 不服可仲裁
2.8K 120Hz华硕好屏、升级13代酷睿!灵耀14 2023旗舰版图赏
支持向量机SVM