*.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:#99ccff;}*.hl_mark_KMSmartTagYellowImg{background-color:#ffff66;}*.hl_mark_KMSmartTagOrangeImg{background-color:#ffad5b;}*.hl_mark_KMSmartTagGreenImg{background-color:#84e384;}*.hl_mark_KMSmartTagPurpleImg{background-color:#d6acff;}*.hl_mark_KMSmartTagRedImg{background-color:#ff8888;}

.wiz-todo, .wiz-todo-img {width: 16px; height: 16px; cursor: default; padding: 0 10px 0 2px; vertical-align: -7%;-webkit-user-select: none;} .wiz-todo-label { line-height: 2.5;} .wiz-todo-label-checked { color: #666;} .wiz-todo-label-unchecked {text-decoration: initial;} .wiz-todo-completed-info {padding-left: 44px; display: inline-block; } .wiz-todo-avatar { width:20px; height: 20px; vertical-align: -20%; margin-right:10px; border-radius: 2px;} .wiz-todo-account, .wiz-todo-dt { color: #666; }

让bean获取spring容器(applicationContext.xml)

一、继承

ApplicationContextAware接口

只需要让java类继承

ApplicationContextAware 接口,并实现方法setApplicationContext,

即可获取spring容器自身 ;


Person.java

  1. package org.crazyit.app.service;
  2. import org.springframework.context.*;
  3. import org.springframework.beans.BeansException;
  4. import java.util.Locale;
  5. public class Person implements ApplicationContextAware
  6. {
  7. // 将BeanFactory容器以成员变量保存
  8. private ApplicationContext ctx;
  9. /* Spring容器会检测容器中所有Bean,如果发现某个Bean实现了ApplicationContextAware接口,
  10. Spring容器会在创建该Bean之后,自动调用该方法,调用该方法时,
  11. 会将容器本身作为参数传给该方法。*/
  12. public void setApplicationContext(ApplicationContext ctx)
  13. throws BeansException
  14. {
  15. this.ctx = ctx;
  16. }
  17. public void sayHi(String name)
  18. {
  19. System.out.println(ctx.getMessage("hello" , new String[]{name}
  20. , Locale.getDefault())); //使用spring容器获取国际化文件中"hello,{0}"
  21. }
  22. }



配置文件beans.xml
在该文件中配置了一个国际化资源文件,message1 ==>message1_zh_CN.properities

  1. <?xml version="1.0" encoding="GBK"?>
  2. <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
  6. <!-- 加载容器国际化所需要的语言资源文件 -->
  7. <bean id="messageSource"
  8. class="org.springframework.context.support.ResourceBundleMessageSource">
  9. <property name="basenames">
  10. <list>
  11. <value>message1</value>
  12. </list>
  13. </property>
  14. </bean>

  15. <!-- Spring容器会检测容器中所有Bean,如果发现某个Bean实现了
  16. ApplicationContextAware接口,Spring容器会在创建该Bean之后,
  17. 自动调用该Bean的setApplicationContext()方法,调用该方法时,
  18. 会将容器本身作为参数传给该方法。-->
  19. <bean id="person" class="org.crazyit.app.service.Person"/>
  20. </beans>

国际化资源文件



测试代码:SpringTest.java

  1. package lee;
  2. import java.io.*;
  3. import org.springframework.context.*;
  4. import org.springframework.context.support.*;
  5. import org.crazyit.app.service.*;
  6. public class SpringTest
  7. {
  8. public static void main(String[] args)throws Exception
  9. {
  10. ApplicationContext ctx = new
  11. ClassPathXmlApplicationContext("beans.xml");
  12. Person p = ctx.getBean("person" , Person.class);
  13. p.sayHi("孙悟空");
  14. }
  15. }


运行结果:


【Spring学习笔记-3.1】让bean获取spring容器上下文(applicationContext.xml)的更多相关文章

  1. Spring学习笔记(七)模拟实际开发过程的调用过程XML版-Setter方式注入

    模拟实际开发过程的调用过程XML版-Setter方式注入 源码获取github [TOC] 1.项目结构 2.jar包跟上个一样 3.重写set方法 UserServiceImpl.java 1234 ...

  2. spring学习笔记(四)我对spring中bean生命周期的理解

    我相信大部分同学对spring中bean的生命周期都不陌生,但是如果要详细的说出每一个步骤,可能能说出来的也不多,我之前也是这样,前几天调了一下spring的源码,看了一点书,突然一下明朗了,理解了s ...

  3. Spring学习笔记(二)之装配Bean

    一,介绍Bean的装配机制 在Spring中,容器负责对象的创建并通过DI来协调对象之间的关系.但是我们要告诉Spring创建哪些Bean并且如何将其装配在一起.,装配wiring就是DI依赖注入的本 ...

  4. Spring学习笔记(7)——Bean的基本配置

            先从IOC说起,这个概念其实是从我们平常new一个对象的对立面来说的,我们平常使用对象的时候,一般都是直接使用关键字类new一个对象,那这样有什么坏处呢?其实很显然的,使用new那么就 ...

  5. Spring学习笔记(三)之装配Bean

    除了组件扫描与自动装配之外还有基于Java代码的装配与基于XML的装配. 有一些场景是我们不能用自动装配的,比如我们要给第三方库中的组件装配到我们的应用中,这时自动装配无效,因为自动装配只能扫描本应用 ...

  6. Spring学习笔记--通过构造方法创建Bean

    如果一个bean没有默认的构造函数,那么可以通过工厂方法来构造一个bean.Spring通过<bean>元素的factory-method属性来装配工厂创建的Bean.下面例子中的Stag ...

  7. Spring 学习笔记(五)—— Bean之间的关系、作用域、自动装配

    继承 Spring提供了配置信息的继承机制,可以通过为<bean>元素指定parent值重用已有的<bean>元素的配置信息. <?xml version="1 ...

  8. Spring学习笔记--初始化和销毁Bean

    可以使用bean的init-method和destroy-method属性来初始化和销毁bean.定义一个Hero类: package com.moonlit.myspring; public cla ...

  9. Spring学习笔记(三):面向切面的Spring

    Spring之面向切面编程 一.理解何为面向切面编程 对于这个的理解,我觉得Spring实战中的例子讲得很明白: 假设我现在是一个小区用户,每个月小区都要收电费,这时候就会来人查看电表,算出来这个月电 ...

随机推荐

  1. 太过亲密往往不好——用non-member,non-friend替换member函数

    在前一篇文章,我们提到,使用private来代替public以提高class的封装性.这一篇文章,我们将对接口发起攻势.首先来个简单的例子. class WebBrowser { public: vo ...

  2. C#实现在注册表中保存信息

    C#实现在注册表中保存信息 最近做的项目需要在注册表中记录一些用户设置,方便在程序下次启动时读取设置,应用上次用户保存的设置,挺简单的. 写出来,方便记忆,以后要用,可以直接改改就能用. 1 usin ...

  3. hibernate级联 cascade属性(转)

    在Hibernate中,针对持久化实体的配置文件中有Cascade这样一个属性,顾名思义就是级联,也就是说在操作当 前实体时,针对当前实体的操作会影响到相应配置的关联实体.比如针对当前实体进行保存操作 ...

  4. 增量打包DOC版

    压缩zip的命令有的系统没有的自己去下载一个,否则关闭压缩zip的命令. 有需要的自行更改,这是满足我需求的. 执行 publish.bat 即可,当然需要将文件清单写好放在 resources.tx ...

  5. 网络编程(socket,套接字)

    服务端地址不变 ip + mac 标识唯一一台机器 ip +端口 标识唯一客户端应用程序 套接字: 网络编程   网络编程 一.python提供了两个级别访问的网络服务 低级别的网络服务支持基本的 S ...

  6. python3:xlrd、xlwt、xlutils处理excel文件

    1.xlrd读取excel 请参考上篇博客https://www.cnblogs.com/shapeL/p/9075843.html 2.xlwt生成excel 安装下载:pip install xl ...

  7. 强化学习 reinforcement learning: An Introduction 第一章, tic-and-toc 代码示例 (结构重建版,注释版)

    强化学习入门最经典的数据估计就是那个大名鼎鼎的  reinforcement learning: An Introduction 了,  最近在看这本书,第一章中给出了一个例子用来说明什么是强化学习, ...

  8. 【机器学习算法】bagging算法

    参考 1.AdaBoost从原理到实现: 完

  9. 配置海康相机SDK文件

    前言 项目使用到海康摄像机,进行二次开发需要首先对SDK文件进行相关配置. 实现过程 1.下载SDK开发包: 网址:http://www.hikvision.com/cn/download_61.ht ...

  10. AOP jdk动态代理

    一: jdk动态代理是Spring AOP默认的代理方法.要求 被代理类要实现接口,只有接口里的方法才能被代理,主要步骤是先创建接口,接口里创建要被代理的方法,然后定义一个实现类实现该接口,接着将被代 ...