Spring在web应用中获得Bean的方法 实现getBean方法

1.新建类,并实现 org.springframework.context.ApplicationContextAware 接口.

package com.abc.framework.util;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/**
 * 在容器启动后,也可以通过 getBean(String name) 得到对象
 * @author Administrator
 * <!-- 需要在spring.xml 里写 -->
 * <bean class="com.abc.framework.util.ApplicationContextHandle" lazy-init="false"/>
 */
public class ApplicationContextHandle implements ApplicationContextAware{
	private static ApplicationContext applicationContext;

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		ApplicationContextHandle.applicationContext = applicationContext;
	}

	/**
     * 获取对象
     * 这里重写了bean方法,起主要作用
     * @param name
     * @return Object 一个以所给名字注册的bean的实例
     * @throws BeansException
     */
    public static Object getBean(String name) throws BeansException {
        return applicationContext.getBean(name);
    }
}

2.在spring.xml内添加:

<bean class="com.abc.framework.util.ApplicationContextHandle" lazy-init="false"/>

3.应用:

private static final AttachmentService as = (AttachmentService)ApplicationContextHandle.getBean("attachmentService");
时间: 2024-08-05 21:49:18

Spring在web应用中获得Bean的方法 实现getBean方法的相关文章

spring在IoC容器中装配Bean详解

1.Spring配置概述 1.1.概述 Spring容器从xml配置.java注解.spring注解中读取bean配置信息,形成bean定义注册表: 根据bean定义注册表实例化bean: 将bean实例放入bean缓存池: 应用程序使用bean. 1.2.基于xml的配置 (1)xml文件概述 xmlns------默认命名空间 xmlns:xsi-------标准命名空间,用于指定自定义命名空间的schema文件 xmlns:xxx="aaaaa"-------自定义命名空间,xx

spring在xml文件中配置bean的三种方法

一.最常见,也是缺省,是调用spring的缺省工厂类 spring缺省工厂类:org.springframework.beans.factory.support.DefaultListableBeanFactory使用其静态方法preInstantiateSingletons() 配置文件中最普通最基本的定义一个普通bean<bean id="DvdTypeDAOBean" class="com.machome.dvd.impl.DvdTypeDAO" >

ASP.NET Web Service中使用Session 及 Session丢失解决方法 续

原文:ASP.NET Web Service中使用Session 及 Session丢失解决方法 续 1.关于Session丢失问题的说明汇总,参考这里 2.在Web Servcie中使用Session,需要对Web Method做如下处理 [WebMethod(EnableSession = true)]public void usingSession(){    Session["Name"] = "Name";} 如果不加EnableSession = tru

Web Service 中返回DataSet结果的几种方法

Web Service 中返回DataSet结果的几种方法: 1)直接返回DataSet对象    特点:通常组件化的处理机制,不加任何修饰及处理:    优点:代码精减.易于处理,小数据量处理较快:    缺点:大数据量的传递处理慢,消耗网络资源:    建议:当应用系统在内网.专网(局域网)的应用时,或外网(广域网)且数据量在KB级时的应用时,采用此种模式. 2)返回DataSet对象用Binary序列化后的字节数组    特点:字节数组流的处理模式:    优点:易于处理,可以中文内容起到

Spring在Web应用中使用的原理

那Spring如何在web应用中使用 ①加入Spring web应用的特定jar包spring-web-4.0.0.RELEASE.jar.spring-webmvc-4.0.0.RELEASE.jar ②添加Spring的配置文件----跟Java工程没有什么不一样 ③如何实例化IOC容器 I. 如果在非 WEB 应用在 main 方法中直接创建 II 如果自web应用的话应该在 WEB 应用被服务器加载时就创建 IOC 容器 那问题又来了,我怎么知道WEB应用什么时候被服务器加载呢? 实际上

Spring笔记——3.容器中的Bean

开发者在Spring框架下只需要做两件事:开发bean,配置bean.所以我们要做到:眼中看的是xml,戏中想的是java类代码,因为Srping本质就是通过xml来驱动java代码,每段xml都对应一段java代码. bean的作用域 通过scope属性可以为bean设置如下作用域. singleton:永远都只有一个实例.默认的是单例.创建后架构会持续跟踪维护. prototype:每次get都是一个新的实例.new后就不管了. request:同一个request中得到的总是同一个,请求结

Spring 在web 容器中的启动过程

1.对于一个web 应用,其部署在web 容器中,web 容器提供其一个全局的上下文环境,这个上下文就是 ServletContext ,其后面的spring IoC 容器提供宿主环境 2.在web.xml 中会提供有 contextLoaderListener.在web 容器启动时,会触发容器初始化事件,此时 contextLoaderListener 会监听到这个事件,其 contextInitialized 方法会被调用,在这个方法中,spring 会初始化一个启动上下文,这个上下文就被称

spring在web.xml中的配置

在实际项目中spring的配置文件applicationcontext.xml是通过spring提供的加载机制,自动加载的容器中去,在web项目中,配置文件加载到web容器中进行解析,目前,spring提供了两种加载器,以供web容器的加载:一种是ContextLoaderListener,另一种是ContextLoaderServlet.这两种在功能上完全相同,只是一种是基于Servlet2.3版本中新引入的Listener接口实现,而另一种是基于Servlet接口实现,以下是这两种加载器在w

Spring在web开发中的应用

(1)在 web 项目中要使用 spring 需要导入一个 jar 包: spring-web-4.2.4.jar包 (2)在 web.xml 文件中配置 Listener 1 <listener> 2 <listener-class> 3 org.springframework.web.context.ContextLoaderListener 4 </listener-class> 5 </listener> 这个 ContextLoaderListen