CSDN博客排版确实不好看!不过技术氛围好,是毋庸置疑的了。。。

接上篇继续学习。。。

上篇学习了如何在Bean中获得容器(BeanFactory,ApplicationContext)、Bean事后处理器和容器事后处理器。就是在容器加载定义文件、设置依赖关系、实例化Bean这个过程中,我们进行点干预。

下面说下ApplicationContext中两个方法的使用:

获得资源-getResource()

ApplicationContext context= new ClassPathXmlApplicationContext("beans-config.xml"); /** * 返回ClassPathResource实例,代表一个位于classpath目录中的资源文件 * "file:"代表系统中某个文件;或者"http:"。 * 参数要是"WEB-INF/...",返回ServletContextResource实例 */ Resource resource=context.getResource("classpath:beans.properties");

解析文字消息-getMessage()

这个方法可以用于国际化消息实现,但是需要借助类org.springframework.context.support.ResourceBundleMessageSource.

直接见代码!

定义文件定义ResourceBundleMessageSource实例,设置属性basename,指定配置文件:

<beans> <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> <!-- value="messages"表示消息资源文件的名称是以messages开头的,如messages_zh_CN.properties ,messages_en_US.properties等 --> <property name="basename" value="messages"/> </bean> </beans>

定义消息文件:messages_zh_CN.properties中可以写"userLogin=用户{0} 于{1}登录",messages_en_US.properties中可以写"userLogin=user {0} login at {1}"。其中{0},{1}为占位符,需要注意的是messages_zh_CN.properties的保存方式需为unicode,可以用ultraedit另存为时选择unicode编码方式保存。

获得消息:

ApplicationContext context= new ClassPathXmlApplicationContext("beans-config.xml"); Object[] arguments=new Object[]{"Jack",Calendar.getInstance().getTime()}; //User Jack login at 11/15/10 8:45 PM String msg1=context.getMessage("userLogin", arguments, Locale.US); //用户 Jack 于 10-11-15 下午8:45 登录 String msg2=context.getMessage("userLogin", arguments, Locale.CHINA);

事件的监听与传播

在Spring应用执行期间,ApplicationContext本身就会发布一系列事件,所有的事件都是抽象类org.springframework.context.ApplicationEvent的子类。如ContextClosedEvent:在ApplicationContext关闭时发布的事件;ContextRefreshedEvent:在ApplicationContext初始化或Refresh时发布的事件;RequestHandledEvent:在web应用中,请求被处理时发布的事件。这些事件都不需要我们自己定义,倒是监听这些事件需要我们实现。

监听器可以实现org.springframework.context.ApplicationListener接口,并在定义文件中定义该监听器实例就可以了。

public interface ApplicationListener<E extends ApplicationEvent> extends EventListener { /** * Handle an application event. * @param event the event to respond to */ void onApplicationEvent(E event); }

要想发布事件通知监听器,可以使用ApplicationContext的publishEvent(new ApplicationEvent())方法。

转载于:https://www.cnblogs.com/whuqin/archive/2010/11/15/4982112.html

《Spring2.0 技术手册》读书笔记五-与Spring容器的交互(2)相关推荐

  1. php调试技术手册读书笔记,RT-Thread读书笔记之一:开始学习了

    原标题:RT-Thread读书笔记之一:开始学习了 春夏不学习,秋冬徒伤悲! 在科学技术日新月异的当下 唯有学习才能紧跟技术潮流 其实,学习的方式多种多样 来二姨家论坛打卡记录学习过程 也是一个不错的 ...

  2. Star Schema完全参考手册读书笔记五

    本博客就第三章缓慢变化维和多维数据集的有关知识进行总结. 缓慢变化维 采用维度设计方案时,确定数据源的变化情况在维度表中如何表示非常重要.这一现象称为缓慢变化的维度,简称缓慢变化维.该术语的名称反映了 ...

  3. 深入分析Java Web技术内幕读书笔记(二)浅析DNS域名解析过程

    上一篇文章<浅析Web请求过程>讲述的是如何发起HTTP请求,对于请求发起过程中很重要的一个步骤--DNS解析过程的描述是一带而过,本篇文章将跟着DNS解析过程来分析域名是如何解析的. 一 ...

  4. [云数据中心] 《云数据中心网络架构与技术》读书笔记 第八章 构建云数据中心端到端安全

    8.1 云数据中心面临的安全挑战 因为云化和SDN化的网络特点(网元出现的位置随意性更大,出现和消失的时间不定): 首先会导致安全业务开通周期长: 其次SDN的自动化能力是现在安全业务所不能达到的,很 ...

  5. 深入分析Java Web技术内幕读书笔记(一)浅析Web请求过程

    随着Web技术的快速发展,互联网的网络架构已经从传统的C/S架构转变为B/S架构,B/S架构相较于传统的C/S架构,有诸多优点,例如:提供了统一的操作方式,简化了用户的学习成本:便捷的开发方式大大提高 ...

  6. 《软件测试方法和技术》 读书笔记

    <软件测试方法和技术> 读书笔记 2014-07-17 第一章 引论   1.3 什么是软件测试   1.4 软件测试与软件开发的关系 第二章 软件测试基本概念   2.1 软件缺陷   ...

  7. Spring 2.0技术手册 下载

    Spring 2.0技术手册 作者:林信良 http://dl2.csdn.net/fd.php?i=56063267108000&s=bf67e9e68510f2fa4d9f726495d9 ...

  8. [原创]京东技术解密读书笔记

    [原创]京东技术解密读书笔记 1 <京东技术解密>--海量订单处理 http://www.csdn.net/article/2015-01-15/2823577 2 <京东技术解密& ...

  9. [云数据中心] 《云数据中心网络架构与技术》读书笔记 第七章 构建多数据中心网络(1/3)

    7.1 多数据中心的业务诉求场景 7.1.1 多数据中心的业务场景分析 主流需求:虚拟化和资源池化,形成多活,可就近提供服务 1. 业务跨数据中心部署 2. 两地三中心 是指在同城双活的数据中心基础上 ...

最新文章

  1. 超强后浪:14岁考上研究生,如今17岁的他或将成为全国最小的博士生!
  2. Win2000中活动目录的备份与恢复
  3. 计算机信息加工的类型及举例,3.1.2计算机信息加工的过程和类型
  4. Eclipse高级使用技巧
  5. 开放防火墙的端口号mysql_linux下mysql开启远程访问权限及防火墙开放3306端口
  6. matlab向万里电子版,万里学院matlab第一次试验报告格式
  7. python+tensorflow+captcha库:基于TF快速破解验证码
  8. PSP XREADER 1.63下载(PSP阅读器)v1.6最新版 含安装/使用方法
  9. 使用QT简单写一个串口助手
  10. 微信表白神秘代码!快发给ta!(学习资料)
  11. 教你玩转私域流量+会员运营体系
  12. java 锯齿_Java2D图形抗锯齿
  13. 如何利用大数据做遗传病智能化诊断?| 硬创公开课
  14. UFS 手机相关调试接口
  15. WP8.1开发:简单的天气预报应用
  16. 蓝凌工作ekp开发使用一些js编写开发记录
  17. 什么电子邮箱正式?企业工作邮箱大全,一般白领用什么邮箱账号?
  18. 如何计算石英晶振的匹配电容
  19. 4GDTU在配电自动化的应用
  20. mysql 5.7.18 Can't change dir to引发的一系列问题(初始化data、改root密码)

热门文章

  1. robo3t设置密码链接
  2. colab中安装lightgbm的GPU版本
  3. php的toast,使用toast组件实现提示用户忘记输入用户名或密码功能
  4. 启动Eclipse时,启不起来JVM terminated. Exit code=-1
  5. Maven 中的pom.xml文件
  6. MapReduce的方式进行HBase向HDFS导入和导出
  7. mysql如何修改所有的definer
  8. DevExpress GridControl功能总结
  9. 将网页保存为webarchive文件的代码
  10. WireSkark(六)