spring bean 不使用注入的方式获取的两种方式

标签: spring bean | 发表时间:2014-01-10 15:37 | 作者:langmnm
出处:http://www.iteye.com
非注入方式取得spring注入bean的util类实现

第一种,我用在webservice接口中。

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

/**
 * SpringBean的工具类<br>
 * 非注入方式取得spring注入bean的util类实现
 * @author langkai
 *
 */
public final class SpringBeanUtil implements ApplicationContextAware {

    private static ApplicationContext ctx;

    /**
     * 通过spring配置文件中配置的bean id取得bean对象
     * @param id spring bean ID值
     * @return spring bean对象
     */
    public static Object getBean(String id) {
        if (ctx == null) {
            throw new NullPointerException("ApplicationContext is null");
        }
        return ctx.getBean(id);
    }

	@Override
	public void setApplicationContext(ApplicationContext applicationcontext)
			throws BeansException {
		ctx = applicationcontext;
	}

}


实现ApplicationContextAware的Bean,在Bean被初始后,将会被注入ApplicationContext的实例。

applicationContext.xml
<bean class="*.SpringBeanUtil"/>


这样在spring配置文件加载时会自动执行ApplicationContextAware的setApplicationContext方法,将applicationContext对象传递给我们的Util类。
SpringBeanUtil.getBean("myBean");

在某些时候我们不希望通过注入也能取得某些bean时有用。

PS:
Spring 中提供一些Aware相关接口,像是BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,这些 Aware接口的Bean在被初始之后,可以取得一些相对应的资源,例如实现BeanFactoryAware的Bean在初始后,Spring容器将会注入BeanFactory的实例,而实现ApplicationContextAware的Bean,在Bean被初始后,将会被注入 ApplicationContext的实例等等。

内容转载至: http://www.myexception.cn/software-architecture-design/897135.html

================================
第二种,就是传统的Application程序使用的了。

ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("springConfig_bus.xml");
		IMsgBusService client = (IMsgBusService) context.getBean("client");




已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [spring bean] 推荐:

Spring bean生命周期

- - 开源软件 - ITeye博客
Spring bean生命周期.       在传统的Java应用中,Bean的生命周期非常简单.  Java的关键词new用来实例化Bean(或许他是非序列化的).  相反,Bean的生命周期在Spring容器中更加细致.  理解Spring Bean的生命周期非常重要,因为你或许要利用Spring提供的机会来订制Bean的创建过程.

spring中Bean的生命周期总结

- - CSDN博客推荐文章
spring中在ApplicationContext或在BeanFactory中Bean的生命周期总结.  Spring中Bean的生命周期,在学习spring的过程中bean的生命周期理解对学习spring有很大的帮助,下面我就分别介绍在ApplicationContext和BeanFactory中Bean的生命周期.

Spring两种加载创建spring bean配置文件的方式

- - ITeye博客
基于spring做bean的管理,基于web开发时有两种加载配置文件创建bean的方式. 第一种基于DispatcherServlet的init-param:. 第二种基于ContextLoaderListener:. PS:如果两种方式都采用了那么spring容器中会维护两套bean,如果有调度,定时任务等那么会重复执行.

Java中如何获取Spring中配置的bean

- - CSDN博客推荐文章
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架. 二、如何在程序中获取Spring配置的bean呢. 方法一:在初始化时保存ApplicationContext对象. 说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况.

使用Java注解进行Spring bean管理

- - 编程语言 - ITeye博客
原文链接: http://www.ibm.com/developerworks/cn/webservices/ws-springjava/. 使用 Java 配置进行 Spring bean 管理. 学习使用 Java 配置管理 Spring bean. Spring bean 是使用传统的 XML 方法配置的.

Spring单例Bean和线程安全 - duanxz - 博客园

- -
Spring的bean默认都是单例的,这些单例Bean在多线程程序下如何保证线程安全呢. 例如对于Web应用来说,Web容器对于每个用户请求都创建一个单独的Sevlet线程来处理请求,引入Spring框架之后,每个Action都是单例的,那么对于Spring托管的单例Service Bean,如何保证其安全呢.

spring bean 不使用注入的方式获取的两种方式

- - 开源软件 - ITeye博客
非注入方式取得spring注入bean的util类实现. 第一种,我用在webservice接口中. * 通过spring配置文件中配置的bean id取得bean对象. * @param id spring bean ID值. * @return spring bean对象. 实现ApplicationContextAware的Bean,在Bean被初始后,将会被注入ApplicationContext的实例.

java bean对象之间复制属性

- - Java - 编程语言 - ITeye博客
在现在的企业级Java应用程序中, Java Bean被广泛的应用. 一堆的相关的划分也应运而生, 如DTO, DAO, BO, POJO, VO等. 这里不去管这些概念的细节, 如果你感兴趣,可以google之, 比如 这篇文章. 这里要讨论的问题是如何在不同的Java Bean对象之间复制它们的属性.

[图]下一代Android开发代号Jelly Bean

- Adam - cnBeta.COM
继冰淇林三文治后,Google又要送上下一道每位甜点了,国外媒体报道,Jelly Bean将成为Google Android的下一个版本代号,这也和之前媒体所披露的开发代号一致,Jelly Bean是一种胶质软糖,相信各位小时候都有对这种软糖的美好回忆,目前下一代Android的开发细节并不清楚.

Jelly Bean 份额突破 40%,近九成为 Android 4.1

- - 爱范儿 · Beats of Bits
据 TNW 报道,Google 发布的 7 月份统计数据表明,Jelly Bean 在 Android 各版本系统中所占份额已经突破 40%,领先于 Gingerbread 的 38.5% 及 ICS 的 25.6%. 然而在所有 Jelly Bean 用户中,近九成(34%)使用的都是 Android 4.1,Android 4.2 份额为 6.5%.