`
yixiandave
  • 浏览: 140348 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring应用内部获取ApplicationContext的两种方法

阅读更多
方法1:
继承ApplicationObjectSupport类,然后调用继承的方法手动获取:
ConfigurableApplicationContext context = (ConfigurableApplicationContext) getApplicationContext();
//动态添加新的bean

接下来就可以做想做的事了

方法2:
实现ApplicationContextAware接口,重写setApplicationContext方法,Spring会创建bean时自动注入
完整案例
@Controller
@RequestMapping("/test")
public class SessionTestController implements ApplicationContextAware {
    private ExcelCache prevCache;
    private ApplicationContext applicationContext;

    @RequestMapping("/testsessionscope")
    public @ResponseBody
    JSONObject testSessionScope(){
        JSONObject res = new JSONObject();
        ExcelCache excelCache = getExcelCache();
//do something
        return res;
    }


    private ExcelCache getExcelCache() {
        return (ExcelCache) applicationContext.getBean("excelCache");
    }

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext = applicationContext;
    }
}
分享到:
评论

相关推荐

    初探spring aop内部实现 java

    Spring AOP(面向切面编程)是Spring框架中的一个重要组件,它允许我们在不修改源代码的情况下,对程序的行为进行统一的管理和控制。...掌握这些知识点,对于提升Spring应用的开发效率和质量具有重要意义。

    spring security 3.1获取所有已登录用户的终极方案

    总的来说,获取Spring Security 3.1中所有已登录用户的信息需要理解框架的内部机制,特别是`SessionRegistry`的使用。通过正确配置`applicationContext-security.xml`并编写适当的Java代码,我们可以实现这一目标,...

    三种整合 Struts 应用程序与 Spring 的方式

    第三种方法是将Struts的Action管理完全委托给Spring框架。这意味着Spring负责创建和管理Action实例,而Struts仅负责调度。这种方式通常涉及自定义Struts的Plug-In,通过Spring的ApplicationContext获取Action实例。...

    Spring Boot中Controller间的调用

    本文将探讨两种在Spring Boot中实现Controller间调用的方法及其优缺点。 首先,我们可以使用`RestTemplate`来模拟远程调用。这是一种常见的HTTP客户端工具,允许Controller A通过HTTP请求访问Controller B。以下是...

    Spring IoC应用开源架构源码2021.pdf

    在上述代码片段中,可以看到一个典型的Servlet处理方法,它展示了如何在Spring应用中使用IoC容器。`doPost`方法从HTTP请求中获取参数,并调用`transferService`进行转账操作。这里虽然没有直接涉及到Spring的IoC,...

    Spring系列面试题129道(附答案解析)

    Spring AOP模块为Spring应用中的对象提供了面向切面的编程实现。它使得开发者能够定义方法拦截器和切点,从而可以将通用功能(如日志和事务管理)模块化。 67、解释JDBC抽象和DAO模块。 Spring的JDBC抽象和DAO模块...

    spring相关内容笔记

    Spring 提供了两种 IOC 容器实现方式:BeanFactory 和 ApplicationContext。 1. BeanFactory BeanFactory 是 IOC 容器的基本实现,是 Spring 内部使用的接口,不提供开发人员使用。加载配置文件时不会创建对象,在...

    spring项目启动加载类到静态服务类中的三种方式.zip

    然后,我们可以通过ApplicationContext获取任何需要的bean,包括静态方法内部。 ```java public class StaticService implements ApplicationContextAware { private static ApplicationContext context; @...

    spring ioc

    Spring 提供了两种主要的 IOC 实现方式:基于 XML 的配置和基于注解的配置。在 XML 配置中,我们会在一个或多个 XML 文件中定义 Bean 及它们的依赖关系。例如: ```xml ``` 在上面的例子中,`exampleBean` 的...

    spring aop spring aop

    在`PersonProxy`类中,`before()`和`after()`就是两种不同类型的的通知。 4. **织入(Weaving)**:织入是将切面应用到目标对象来创建新的代理对象的过程。Spring支持三种织入方式:编译时织入、类加载时织入和运行...

    spring配置中<context-param> 和<init-param>的 区别

    在Spring框架的XML配置中,`&lt;context-param&gt;`和`&lt;init-param&gt;`是两种不同的参数配置元素,它们各自有着特定的用途。理解这两者的区别对于深入掌握Spring的应用上下文(ApplicationContext)初始化至关重要。 首先,...

    spring-core.

    Spring Core中的ApplicationContext接口是Spring应用的核心,它是Bean工厂的升级版,除了管理Bean之外,还提供了资源加载、消息解析、事件发布等功能。ApplicationContext可以通过XML、Java配置或注解来初始化,如:...

    Java反射_Spring IOC

    Java反射和Spring IOC是Java开发中的两个重要概念,它们在构建灵活、可扩展的应用程序时起着关键作用。本文将深入探讨这两个主题,并提供相关的学习资源。 首先,让我们了解一下Java反射。Java反射机制是Java语言的...

    spring学习笔记

    这个容器主要包括BeanFactory和ApplicationContext两种类型。ApplicationContext是BeanFactory的子类,它提供了更多的功能,如支持国际化消息等。 二、Spring容器的基本应用 描述了如何将Bean组件交给Spring容器...

    Spring相关测试1

    Bean是Spring容器管理的对象,配置Bean主要有两种方式: 1. **XML配置**:在`applicationContext.xml`文件中,通过`&lt;bean&gt;`标签定义Bean。例如: ```xml &lt;!-- 属性注入 --&gt; &lt;property name="prop2"&gt;&lt;ref ...

    Spring 管理filter 和servlet

    Spring提供了两种现成的代理类,用于处理Filter或Servlet的代理,分别是`org.springframework.security.util.FilterToBeanProxy`和`org.springframework.web.filter.DelegatingFilterProxy`。这些代理类负责从...

    spring整合hibernate例子

    6. 测试和调用:最后,我们可以通过Spring的ApplicationContext获取到DAO实例,然后调用其方法进行数据库操作。这样,整个流程就将Spring的控制反转和事务管理能力与Hibernate的ORM功能融合在一起。 整合Spring和...

    spring-developing-java-applications-enterprise

    #### 五、Spring应用的创建 1. **获取Spring JAR文件**:可以通过Maven或Gradle等方式下载Spring的库文件。 2. **理解Spring的打包结构**:Spring的库文件通常被打包成不同的模块,每个模块负责不同的功能。 3. **...

Global site tag (gtag.js) - Google Analytics