bean-Spring的容器初始化以后怎么使用

问题描述

Spring的容器初始化以后怎么使用

现在在web.xml中配置了spring的监听器,这时当启动tomcat的时候,spring的容器
就会初始化,对spring的配置采用注解的方式,假设有一个@Component("quest")此时,spring的配置文件中只有一句

如果这时在测试类中需要用到quest对象,应该怎么获得quest这个bean

如果不在web.xml中配置监听器,而是手动获得spring容器,这个我会,应该是
ApplicationContext ctx = new ClassPathXmlApplicationContext("XXXX.xml");
然后
Quest quest = (Quest)ctx.getBean("quest");

现在就想让配置监听器有同样的作用,应该怎么做

解决方案

WebApplicationContext ac = ContextLoader.getCurrentWebApplicationContext() ;你试试

解决方案二:

从你的描述中,实在不知道你的情况,这样子很难给你正确的答案呀。
你是只使用了Spring?还是除了Spring还有别的框架?还是直接使用的Spring MVC?
条件不清楚无法给出答案。

解决方案三:

我在网上搜索了一下,找到一个例子,也不知道你能不能弄出来,你看下,不知道有没有帮助。
.创建一个类并让其实现org.springframework.context.ApplicationContextAware接口来让Spring在启动的时候为我们注入ApplicationContext对象.

示例代码:

 

  import org.springframework.beans.BeansException;

  import org.springframework.context.ApplicationContext;

  import org.springframework.context.ApplicationContextAware;

  public class MyApplicationContextUtil implements ApplicationContextAware {

  private static ApplicationContext context;

  //声明一个静态变量保存

  public void setApplicationContext(ApplicationContext contex) throws BeansException {

  this.context=contex;

  }

  public static ApplicationContext getContext(){

  return context;

  }

  }

  2.在applicationContext.xml文件中配置此bean,以便让Spring启动时自动为我们注入ApplicationContext对象.

  例:

  <!-- 这个bean主要是为了得到ApplicationContext 所以它不需要其它属性-->

  <bean class="org.ing.springutil.MyApplicationContextUtil"></bean>

  3.有了这个ApplicationContext之后我们就可以调用其getBean("beanName")方法来得到由Spring 管理所有对象.

解决方案四:

你可以让spring配置文件中声明的一个bean 实现ApplicationContextAware接口 那么在加载Spring配置文件时,会自动调用ApplicationContextAware 接口中的

public void setApplicationContext(ApplicationContext context) throws BeansException

方法,获得ApplicationContext对象。 这样你就可以操作上下文内的bean了。

解决方案五:

你可以让spring配置文件中声明的一个bean 实现ApplicationContextAware接口 那么在加载Spring配置文件时,会自动调用ApplicationContextAware 接口中的

public void setApplicationContext(ApplicationContext context) throws BeansException

方法,获得ApplicationContext对象。 这样你就可以操作上下文内的bean了。

解决方案六:

你可以让spring配置文件中声明的一个bean 实现ApplicationContextAware接口 那么在加载Spring配置文件时,会自动调用ApplicationContextAware 接口中的

public void setApplicationContext(ApplicationContext context) throws BeansException

方法,获得ApplicationContext对象。 这样你就可以操作上下文内的bean了。

解决方案七:

你可以让spring配置文件中声明的一个bean 实现ApplicationContextAware接口 那么在加载Spring配置文件时,会自动调用ApplicationContextAware 接口中的

public void setApplicationContext(ApplicationContext context) throws BeansException

方法,获得ApplicationContext对象。 这样你就可以操作上下文内的bean了。

解决方案八:

你可以让spring配置文件中声明的一个bean 实现ApplicationContextAware接口 那么在加载Spring配置文件时,会自动调用ApplicationContextAware 接口中的

public void setApplicationContext(ApplicationContext context) throws BeansException

方法,获得ApplicationContext对象。 这样你就可以操作上下文内的bean了。

解决方案九:

WebApplicationContext ac = ContextLoader.getCurrentWebApplicationContext() ;你试试

解决方案十:

WebApplicationContext ac = ContextLoader.getCurrentWebApplicationContext() ;你试试

时间: 2024-10-03 16:54:53

bean-Spring的容器初始化以后怎么使用的相关文章

当spring 容器初始化完成后执行某个方法

在做web项目开发中,尤其是企业级应用开发的时候,往往会在工程启动的时候做许多的前置检查. 比如检查是否使用了我们组禁止使用的Mysql的group_concat函数,如果使用了项目就不能启动,并指出哪个文件的xml文件使用了这个函数. 而在Spring的web项目中,我们可以介入Spring的启动过程.我们希望在Spring容器将所有的Bean都初始化完成之后,做一些操作,这个时候我们就可以实现一个接口: 1 2 3 4 5 6 7 package com.yk.test.executor.p

《Spring攻略(第2版)》——1.2 配置Spring IoC容器中的Bean

1.2 配置Spring IoC容器中的Bean 1.2.1 问题 Spring提供了一个强大的IoC容器来管理组成应用的bean.为了利用容器服务,你必须配置运行于Spring IoC容器中的Bean. 1.2.2 解决方案 你可以通过XML文件.属性文件.注释甚至API来配置Spring IoC容器中的Bean. Spring允许你在一个或者多个bean配置文件中配置bean.对于简单的应用程序,可以在单个配置文件中集中配置bean.但是对于有许多bean的大型应用,你应该根据其功能(例如控

spring IOC容器实现探讨

   spring IOC容器的实现,一开始我被复杂的接口和类所掩埋,看不清整体的思路和设计,踟蹰于代码丛林中,摸不清前进的方向.一开始我就决定只研读以xml文件做配置文件的XmlFactoryBean的具体实现为主要目标,渐渐地有了点感觉,用UML把spring中的bean工厂体系展现出来之后就更清晰了,让你不得不感叹设计的精巧和复杂.本文只是我个人对spring IOC实现的理解,如有错误,请不吝赐教,谢谢.     首先,需要理解的是spring容器中bean的生命周期,<spring i

Spring IOC容器源码浅析

控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心.      控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找.依赖注入应用比较广泛.      将控制权从具体的对象手中交给平台或者是框架. BeanFactory是基本的功能接口 public interface BeanFactory { //这里是对FactoryBean的转义定

Spring的容器内部事件发布

文/杜琪(简书作者) 原文链接:http://www.jianshu.com/p/4f0ad3bb98f0 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". 自定义事件机制 给出自定义事件类型在某些应用场景下,我们希望关注特定功能的执行情况,这种功能的开始或者结束或者异常都可以看做一个事件,因此需要定义自己的事件类型. package com.javadu.event; import java.util.EventObject; public class MethodEx

spring-关于Spring父子容器的事务处理问题

问题描述 关于Spring父子容器的事务处理问题 10C 今天在看项目的配置,在SpringMVC(子容器)中不注解service,在父容器中不注解controller,网上搜了一下,引用原话是:_子容器对Controller进行扫描装配时装配了@Service注解的实例 (@Controller 实例依赖@Service实例),而该实例理应由父容器进行初始化以保证事务的增强处理_ 我的问题是:保证事务的增强处理是什么意思? 子容器是可以访问父容器的内容的吧,那么父容器做到的子容器也可以做到的应

《Spring攻略(第2版)》——第1章 Spring简介 1.1实例化Spring IoC容器

第1章 Spring简介 在本章中,你将参加关于Spring.核心容器以及容器所提供的一些全局可用设施的一个速成班(或者一次复习),你还将了解Spring XML配置格式,以及注释驱动的支持.本章将带给你应付本书余下部分中引入的概念所需要的知识.你将学习Spring IoC容器中的基本组件配置.在Spring框架的核心部分,IoC容器的设计具有高度的适应性和可配置性,提供了使你的组件配置尽可能简单的一组工具.你能够很简单地设置运行于Spring IoC容器中的组件. 在Spring中,组件也被称

第十六章_动态注册和Servlet容器初始化

16.1.动态注册 为了使动态注册成为可能,ServletContext接口中还添加了以下方法,用来动态地创建Web对象: <T extends Filter>createFilter(Java.lang.Class<T> clazz) <T extends java.util.EventListener> createListener(java.lang.Class<T> clazz) <T extends Servlet> createSer

java开发中动态注册bean到spring框架容器

原先的设计是通过已有的库,将数据通过rmi写入到远程服务器:现在有需求需要将支持多个,而且是自定义的远程服务器ip. 因为整个接口原先都是通过spring配置文件,包括rmi的地址.同时,为了维护方便,不能直接将打好的jar包拿过来改,于是就采用了复制原有的bean definition,动态注册新的bean到那个spring容器中. 首先需要获取jar包中的spring容器,这里需要将applicationContext接口转换成为真正的实现:DefaultListableBeanFactor