项目用到了ApplicationContextAware,通过它Spring容器会自动把上下文环境对象调用ApplicationContextAware接口中的setApplicationContext方法。

我们在ApplicationContextAware的实现类中,就可以通过这个上下文环境对象得到Spring容器中的Bean。

使用方法如下:

1.实现ApplicationContextAware接口:

[java] view plain copy
  1. package com.bis.majian.practice.module.spring.util;
  2. import org.springframework.beans.BeansException;
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.ApplicationContextAware;
  5. public class SpringContextHelper implements ApplicationContextAware {
  6. private static ApplicationContext context = null;
  7. @Override
  8. public void setApplicationContext(ApplicationContext applicationContext)
  9. throws BeansException {
  10. context = applicationContext;
  11. }
  12. public static Object getBean(String name){
  13. return context.getBean(name);
  14. }
  15. }

2.在Spring的配置文件中配置这个类,Spring容器会在加载完Spring容器后把上下文对象调用这个对象中的setApplicationContext方法:

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  7. http://www.springframework.org/schema/tx
  8. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context-3.0.xsd" default-autowire="byName">
  11. <bean id="springContextHelper" class="com.bis.majian.practice.module.spring.util.SpringContextHelper"></bean>
  12. <context:component-scan base-package="com.bis.majian.practice.module.*" />
  13. </beans>

3.在web项目中的web.xml中配置加载Spring容器的Listener:

[html] view plain copy
  1. <!-- 初始化Spring容器,让Spring容器随Web应用的启动而自动启动 -->
  2. <listener>
  3. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  4. </listener>

4.在项目中即可通过这个SpringContextHelper调用getBean()方法得到Spring容器中的对象了。

通过ApplicationContextAware加载Spring上下文环境相关推荐

  1. 加载spring上下文的多种方式总结

    一:Spring中的几种容器都支持使用xml装配bean,包括: XmlBeanFactory , ClassPathXmlApplicationContext , FileSystemXmlAppl ...

  2. SpringBoot加载spring.factories的价值

    SpringBoot加载spring.factories的价值 在springboot的各个依赖包下,我们经常看到META-INF/spring.factories这个文件.spring.factor ...

  3. K8s 集群使用 ConfigMap 优雅加载 Spring Boot 配置文件

    文章目录 1.Spring Boot 加载配置介绍 2.环境.软件准备 3.Spring Boot 示例工程 Demo 4.K8s ConfigMap 加载工程配置文件 4.1.直接加载环境的配置文件 ...

  4. aws ena模块加载_在AWS上全自动实时重新加载Spring Boot应用程序

    aws ena模块加载 在这篇文章中,我们将研究Spring Boot的最佳机密之一: Spring Boot DevTools . 尽管可以在本地计算机上进行测试,但在与生产环境尽可能相似的环境中开 ...

  5. 手动加载spring, ApplicationContext怎么销毁

    手动加载spring, ApplicationContext怎么销毁 AbstractApplicationContext context = new ClassPathXmlApplicationC ...

  6. java spring包_java 自定义加载器,加载spring包,动态加载实现,jar包隔离,tomcat加载webapp方式...

    java 自定义加载器,加载spring包,动态加载实现,jar包隔离,tomcat加载webapp方式 发布时间:2018-08-20 12:02, 浏览次数:774 , 标签: java spri ...

  7. Web.xml配置详解之context-param (加载spring的xml,然后初始化bean看的)

    http://www.cnblogs.com/goody9807/p/4227296.html(很不错啊) 容器先加载spring的xml,然后初始化bean时,会为bean赋值,包括里面的占位符 转 ...

  8. web前端高级React - React从入门到进阶之组件的懒加载及上下文Context

    第二部分:React进阶 系列文章目录 第一章:React从入门到进阶之初识React 第一章:React从入门到进阶之JSX简介 第三章:React从入门到进阶之元素渲染 第四章:React从入门到 ...

  9. 手动加载spring配置文件

    更多Java架构师核心资料持续更新中https://github.com/kepeihong/data.git,内推阿里请查看链接 手动加载Spring配置文件有两个类,分别是ClassPathXml ...

最新文章

  1. 500页开放书搞定概率图建模,图灵奖得主Judea Pearl推荐(附链接)
  2. 通过输入流获取的xml格式字符串转为json和map格式
  3. asp.net textbox 控件如何清除缓存
  4. JVM夺命连环10问
  5. Centos7等保三级检查命令
  6. Spark Streaming 和 Flink 的对比以及详细描述,图文对比、代码
  7. 零基础学python还是c语言-学习汇编还是学习python,自己刚学完C语言,学习那个好呢?...
  8. React-概念和基本使用
  9. [数据结构] 左偏树
  10. 面向电缆行业的高级计划与排程(商简SPS)解决方案
  11. windows下安装Linux(Ubuntu)系统
  12. 手把手教你sql触发器的使用
  13. NVIDIA-SMI
  14. Character Controller角色控制器组件
  15. java 中“==”与“equal” 的区别
  16. html图片的隐藏与显示,Jquery中使用show()与hide()方法动画显示和隐藏图片
  17. Top计算机博士去BATH还是985非升即走?
  18. easyUI的高级查询
  19. ResNext架构解析:深度神经网络的聚合残差变换
  20. XMD:使用Github Pages搭建个人站点,更换博客专属域名

热门文章

  1. 燕大计算机专业档次,河北省高校排名:分为四个档次,燕大在第二档,第三档有八所高校...
  2. oracle入门知识实施,新手必须了解的oracle入门知识
  3. oracle 孟硕_关于几大主机厂的阿里云论坛用户知识和技术交流
  4. java简单的面试题目_简单的面试题目,大跌眼镜的结果
  5. java算法面试题_【干货】经典算法面试题代码实现-Java版
  6. python如何调用c++numpy.ndarray代码_python – 在cython中使用numpy:定义ndarray数据类型/ ndims...
  7. python hello world程序编写_编写高质量代码 改善Python程序的91个建议
  8. 函数字节不对齐函数崩溃_Excel中统计字符数,不需要一个一个的数,len函数能轻松搞定...
  9. centos代码切换图形_沙迪克慢走丝代码大全,G代码、T代码、M代码(值得收藏)...
  10. python编程语言基础