`

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

阅读更多
非注入方式取得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");


分享到:
评论

相关推荐

    Spring定义bean的三种方式和自动注入

    Spring提供两种主要的自动注入方式:`byName`和`byType`,以及更推荐的`@Autowired`注解。 - `byName`:根据Bean的属性名查找相同名称的Bean进行注入。 - `byType`:如果Bean的属性类型只有一个匹配的Bean,那么...

    spring bean的生命周期

    - **初始化回调**:Spring支持两种类型的初始化回调方法,即`@PostConstruct`注解的方法和在XML中定义的`init-method`属性指定的方法。 2. **容器管理的生命周期回调** - **Singleton Beans的懒加载**:如果Bean...

    spring学习:依赖注入的几种方式讨论

    Spring Boot引入了一种更智能的依赖注入方式——自动配置。自动配置是通过`@EnableAutoConfiguration`注解启动的,它根据项目中的类路径和特定条件自动配置Bean。例如,如果类路径下存在`MongoClient`的jar,Spring ...

    Spring 三种依赖注入方式.doc

    Spring 三种依赖注入方式 Spring 框架中提供了多种依赖注入方式,其中最常用的三种依赖注入方式分别是接口注入、设值注入和构造函数注入。下面,我们将分别对这三种依赖注入方式进行详细的介绍和分析。 一、接口...

    实例化Spring bean的两种工厂方法

    本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念。Spring Bean是Spring IoC容器管理的对象,这些对象的生命周期、依赖关系以及初始化行为由...

    java巩固练习Spring 的bean注入方式有几种demo例子

    首先,我们来了解Spring中的bean注入主要有以下四种方式: 1. **设值注入(Setter Injection)**:这是最常见的一种注入方式,通过setter方法来设置bean的属性。在XML配置文件中,我们可以通过`&lt;property&gt;`标签来...

    spring获取weblogic jndi数据源的两种方式

    ### Spring 获取 WebLogic JNDI 数据源的两种方式 在Spring框架中,通过JNDI(Java Naming and Directory Interface)可以方便地访问WebLogic服务器中的数据源。这为应用程序提供了高度解耦的数据访问机制,使得...

    Java中Spring获取bean方法小结

    获取Bean的两种常见方式是: - 使用`FileSystemXmlApplicationContext`,从文件系统加载配置文件。 - 使用`ClassPathXmlApplicationContext`,从类路径加载配置文件。例如: ```java ApplicationContext context...

    详解Spring 中如何控制2个bean中的初始化顺序

    除了上述两种方式外,还有其他方式可以控制 2 个 bean 的初始化顺序。例如,可以使用 Spring 的 @Order 注解来指定 bean 的初始化顺序,也可以使用 Spring 的生命周期接口(如 InitializingBean)来控制 bean 的初始...

    通过@Autowired注解注入bean的顺序,以及@bean注入.rar

    1. **类型匹配**:Spring首先尝试按类型匹配bean,找到最适合的bean注入到目标字段或构造函数。 2. **按名称匹配**:如果存在多个相同类型的bean,Spring会检查目标字段或构造函数是否有`@Qualifier`注解,如果有,...

    Spring bean 管理

    Spring支持通过XML配置文件使用构造函数注入和setter方法注入两种属性注入方式。 - 构造函数注入:在元素中声明的属性,通过构造函数传递给Bean实例。 - setter方法注入:通过元素设置的属性,Spring调用相应的...

    Web项目中获取SpringBean与在非Spring组件中获取SpringBean.pdf

    总的来说,获取非Spring管理组件中的SpringBean主要有两种方式:一是通过实现`ApplicationContextAware`接口并存储ApplicationContext,二是使用注解和静态内部类来注入BeanFactory。这两种方法都是Spring框架提供的...

    Spring Bean常用依赖注入方式详解

    本文将详细介绍构造器注入和Setter注入两种方式。 一、构造器注入 构造器注入是指在创建对象时,通过构造方法将依赖项注入到对象中。这种方式可以确保对象在创建时就已经包含了所有必要的依赖项。要使用构造器注入...

    Spring Bean简单应用实例

    在这个"Spring Bean简单应用实例"中,我们将深入理解这两个概念以及如何在实际应用中使用它们。 首先,控制反转(IoC)是一种设计模式,它将对象的创建和管理职责从应用代码中分离出来,转交给容器来处理。这样,...

    Spring的Bean配置

    Spring提供了两种主要的IOC容器:`BeanFactory`和`ApplicationContext`。 - `BeanFactory`是最基本的容器,它实现了IoC的基本功能,如Bean的创建和管理。然而,它的功能相对较少,适合小型项目。 - `...

    几种spring获取bean的方法.txt

    这两种方式都避免了硬编码Bean的获取逻辑,使得代码更加灵活和易于维护。 此外,在实际开发中还可能遇到其他获取Bean的方式,比如使用`ApplicationContext`的子类如`ClassPathXmlApplicationContext`或`...

    Spring注入的方式

    本文将详细探讨Spring中的两种主要注入方式:构造器注入和setter注入,以及它们各自的特点和适用场景。 首先,让我们理解什么是依赖注入(Dependency Injection,简称DI)。在传统的编程模式中,一个类通常会直接...

    day38 12-Spring的Bean的属性的注入:名称空间p

    Bean属性注入主要有两种方式:`setter方法注入`和`构造器注入`。前者通过调用Bean的setter方法来设置属性,后者在创建Bean实例时通过构造器传入参数。Spring还提供了多种注入方式,如`属性值注入`、`引用注入`(注入...

    Spring-注入依赖,AOP,自动注入Bean

    在Spring框架中,依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)是两大核心特性,同时自动注入Bean也是Spring管理对象的一种常见方式。让我们深入探讨这些概念。 首先,...

    Spring依赖注入——java项目中使用spring注解方式进行注入.rar

    - 如果多个bean满足注入条件,而没有使用`@Qualifier`进行区分,Spring会报错。此时,要么调整bean的设计,要么使用`@Qualifier`指定注入的bean。 - 使用`@Autowired`时,尽量避免在构造函数中,因为这可能会导致...

Global site tag (gtag.js) - Google Analytics