*.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. Flask初级(十一)flash与APScheduler 实现定时任务

    from flask import Flask from flask_apscheduler import APScheduler # 引入APScheduler class Config(objec ...

  2. Mac OS X 10.9下解决cocos2d-x在Xcode4.6.x的模板不显示问题

    最近将iMac 升级到10.9了,奇怪的事情发生了,cocos2d-x的模板不见了,鼓捣了半天发现问题所在 打开xcode新建工程却找不到cocos2d-x的模板. 经过在网上的苦苦搜寻和试验后,找到 ...

  3. Vue 相关难点汇总

    1. 父子组件的双向数据绑定,所以在子组件是不允许修改父组件的属性的. // 解决办法 // 在子组件data中定义一个父组件传递过来的副本,再把该副本利用this.$emit("" ...

  4. Maven私服Nexus详解

    maven的仓库只有两大类:1.本地仓库 2.远程仓库,在远程仓库中又分成了3种:2.1 中央仓库 2.2 私服 2.3 其它公共库. 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理 ...

  5. react 学习日记

    1.本地配置代理服务:   create-react-app 创建的react项目 package.jsoin 中 加入: "proxy": "http://localh ...

  6. Tomcat必会的企业级配置调优

    Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选. ======== 完美的分割线 ...

  7. C高级第一次PTA作业

    作业要求一 附加题目 写程序证明P++等价于(p)++还是等价于*(p++)? 1.设计思路: (1).题目算法描述 第一步:定义变量p并赋初值 第二步:分三次计算每次分别输出 p++,(p)++,* ...

  8. tesseract text2image windows

    text2image.exe --text="X:\xxx.txt" --outputbase="X:\test.font.exp0" --fontconfig ...

  9. [LeetCode&Python] Problem 136. Single Number

    Given a non-empty array of integers, every element appears twice except for one. Find that single on ...

  10. MyEclipse快捷键及经验总结 绝对的有用 太给力了

    Ctrl+Shift+L    显示所有快捷键  Ctrl+K      参照选中的词(Word)快速定位到下一个  Ctrl+Shift+K    参照选中的词(Word)快速定位到上一个    C ...