`
stulance
  • 浏览: 31550 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【企业应用--spring】在任何地方调用spring配置的bean

阅读更多

需求:在一个类A里调用spring配置的bean,但类A没有配置到sping中。

 

解决方法:

1、创建“ApplicationContextProvider”类,代码如下:

 

package context;

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

/** This class provides an application-wide access to the  
 * Spring ApplicationContext! The ApplicationContext is  
 * injected in a static method of the class "AppContext".  
 * Use AppContext.getApplicationContext() to get access  
 * to all Spring Beans.  
 */
public class ApplicationContextProvider implements ApplicationContextAware {
	public void setApplicationContext(ApplicationContext ctx) throws BeansException {
		AppContext.setApplicationContext(ctx);

	}
}

 

 2、创建“AppContext”类,代码如下:

 

import org.springframework.context.ApplicationContext;

/** This class provides application-wide access to the Spring ApplicationContext. 
 * The ApplicationContext is injected by the class "ApplicationContextProvider".  
 * */
public class AppContext {
	private static ApplicationContext ctx;

	/** Injected from the class "ApplicationContextProvider" which is automatically 
	 *  loaded during Spring-Initialization.      */
	public static void setApplicationContext(ApplicationContext applicationContext) {
		ctx = applicationContext;
	}

	/** Get access to the Spring ApplicationContext from everywhere in your Application.      
	 *  @return     
	 **/
	public static ApplicationContext getApplicationContext() {
		return ctx;
	}
} // .EOF  

 

 3、修改applicationContext.xml,增加如下配置

 

<bean id="contextApplicationContextProvider" class="context.ApplicationContextProvider"></bean>

 

 4、此时就可以在任意地方调用spring中配置的bean.调用方法如下:

 

ApplicationContext ctx = AppContext.getApplicationContext();   
//honey 为配置到spring中的bean的id
Honeypotbean honey = (HoneyPotBean) ctx.getBean("honey");  
 

 

分享到:
评论
2 楼 wellbbs 2011-04-17  
后来改了只能调用
@Transactional
里的方法就没有问题了
1 楼 wellbbs 2011-04-17  
现在是可以取到了,我写的这个单例里可以使用spring里注册的bean,
但是这个单例在jsp页面使用时候报
No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
错误

相关推荐

    spring bean XML配置入门

    在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...

    普元eos-springbean开发

    本文将围绕“普元EOS-SpringBean开发”这一主题展开讨论,重点讲解SpringBean在普元EOS中的开发与配置流程,以及通过具体案例来深入理解其应用场景。 ### SpringBean开发与配置 #### SpringBean简介 SpringBean是...

    Spring--2.Spring 中的 Bean 配置-3

    在Spring框架中,Bean配置是核心概念之一,它关乎到对象的创建、初始化、装配以及管理。本节我们将深入探讨Spring中的Bean配置,主要聚焦在第三部分,这通常涉及到更高级和灵活的配置方式。 首先,Spring允许我们...

    17. Spring Boot普通类调用bean【从零开始学Spring Boot】

    在Spring Boot框架中,普通类调用bean是常见的操作,特别是在构建复杂应用时。这篇博客“17. Spring Boot普通类调用bean【从零开始学Spring Boot】”旨在指导初学者如何在非Spring管理的类中访问和使用Spring容器中...

    SSH---Spring减少配置量将公共的配置进行抽象源码

    在Spring框架中,SSH(Spring、Struts、Hibernate)是一种常见的企业级应用开发组合,而Spring作为其中的核心组件,主要用于管理对象的依赖关系和提供控制反转(IoC)以及面向切面编程(AOP)的功能。当我们面临大量...

    spring bean的生命周期

    - **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...

    spring-mybatis-spring-1.3.2.tar.gz

    在本项目中,Spring作为容器,管理着所有Bean的生命周期,通过XML配置文件或Java配置类来定义Bean的创建、初始化、销毁等过程。同时,Spring MVC作为其Web层组件,处理HTTP请求,实现业务逻辑和视图的解耦。 二、...

    Spring Bean重复执行两次(实例被构造两次)问题分析

    在Spring容器初始化时,它会根据配置加载Bean的定义,并根据需要创建Bean实例。Bean的生命周期大致分为以下几个阶段:构造、初始化、正常使用、销毁。如果一个Bean被创建了两次,那么可能是在构造或初始化阶段出现了...

    mybaits-spring(ibatis-spring)-1.0.2-bundle

    2. 配置SqlSessionFactory:在Spring的配置文件中,通过bean定义SqlSessionFactory,通常基于XML配置文件或者Java配置类。 3. 配置MapperScannerConfigurer:用于扫描指定包下的Mapper接口,将其注册为Spring Bean。...

    spring-mybatis-spring-2.1.0.zip

    在Java开发领域,Spring框架和MyBatis作为两个极为重要的组件,被广泛应用于企业级应用开发中。Spring以其强大的依赖注入(DI)和面向切面编程(AOP)能力,提供了全面的框架支持;而MyBatis则以其灵活的SQL映射机制...

    spring-mybatis-spring-1.1.0.zip

    在Java开发领域,Spring框架以其强大的功能和灵活性,成为了企业级应用的首选。而MyBatis作为一款轻量级的持久层框架,以其直观、灵活的SQL映射机制深受开发者喜爱。当这两者结合在一起时,能够构建出高效且易于维护...

    spring-mybatis-spring-1.2.3.zip

    在Java开发领域,Spring框架以其强大的功能和灵活性,成为企业级应用开发的首选。而MyBatis作为一个优秀的持久层框架,以其简洁高效的SQL操作,深受开发者喜爱。当这两个框架结合在一起,能够形成一个既灵活又高效的...

    Spring bean 管理

    - setter方法注入:通过元素设置的属性,Spring调用相应的setter方法来注入值。 6. Spring的属性注入-注解方式: 随着Spring的发展,注解方式的依赖注入变得越来越流行。通过在类属性上使用@Autowired、@Resource...

    mybatis-spring-1.0.1-bundle mybatis spring 官方下载

    MyBatis-Spring 是一个将 MyBatis ORM 框架与 Spring 框架集成的库,旨在简化在 Spring 应用程序中使用 MyBatis 的过程。这个`mybatis-spring-1.0.1-bundle`是官方发布的版本,包含了一个稳定的集成框架,使得开发者...

    Spring的Bean配置说明

    ### Spring的Bean配置详解 #### 一、Spring配置文件根元素`&lt;beans&gt;`解析 - **功能概述**:`&lt;beans&gt;`是Spring配置文件的根...总之,理解和掌握Spring的Bean配置机制对于任何Spring应用程序开发者来说都是非常重要的。

    普通类调用Spring bean对象

    当我们需要在非Spring管理的普通类中调用Spring管理的bean对象时,需要掌握特定的方法。这篇文档将详细介绍如何实现这一操作,并探讨相关的源码和技术工具。 首先,理解Spring的核心概念——依赖注入(Dependency ...

    Spring Bean创建初始化流程.docx

    在Spring框架中,Bean的创建和初始化是IoC(Inversion of Control)容器的核心功能,这一过程涉及到多个...Spring的IoC容器使得应用更加灵活和易于测试,因为Bean的依赖关系可以通过配置来调整,而不是硬编码在代码中。

    jax-ws与spring整合jar包下载

    4. 启动服务:最后,启动Spring应用上下文,JAX-WS服务就会监听指定的地址,等待客户端调用。 在Android开发中,虽然JAX-WS并不是首选的Web服务技术(通常使用Retrofit或Volley等现代HTTP库),但理解JAX-WS与...

    《spring+mybatis 企业应用实战》源码、类库全资料

    在实际项目中,开发者会创建一个 SqlSessionFactoryBean,配置数据源和MyBatis的相关配置文件,然后通过 Spring 的 Bean 注册机制将 SqlSessionFactory 注入到需要的地方。 在《spring+mybatis 企业应用实战》的...

Global site tag (gtag.js) - Google Analytics