`
stulance
  • 浏览: 31203 次
  • 性别: 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
错误

相关推荐

    SpringBean 调用 事务 AOP

    Spring,Bean调用,事务,AOP,配置详细说明 提升开发效率

    普元eos-springbean开发

    普元eos-springbean开发

    08-IoC配置-bean的生命周期控制

    Spring IOC容器可以管理Bean的生命周期,允许在Bean生命周期的特定点执行定制的任务。 Spring IOC容器对Bean的生命周期进行管理的过程如下: 通过构造器或工厂方法创建Bean实例 为Bean的属性设置值和对其它Bean的...

    springboot学习思维笔记.xmind

    SpringEL和资源调用 注入普通字符 注入操作系统属性 注入表达式云算结果 注入其他Bean的属性 注入文件内容 注入网址内容 注入属性文件 Bean的初始化和销毁 Java配置方式 注解方式 ...

    高级java笔试题-spring-cloud-learning:spring-cloud、spring-cloud-alibaba、nacos

    也可能跑不起来,那就单元测试,单元测试其实是一个很专业的领域,跑本地单元测试的时候,需要把你的spring容器跑起来,然后对各种bean的注入可能需要打桩,接着再测试各个接口。 有的时候跑起来需要有一些其他人...

    spring bean的源码

    Spring 大量引入了Java 的Reflection机制,通过动态调用的方式避免硬编码方式的约束,并在此基础上建立了其核心组件BeanFactory,以此作为其依赖注入机制的实现基础。org.springframework.beans包中包括了这些核心...

    spring jar 包详解

    (2) spring-beans.jar 这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI支持,...

    Spring.3.x企业应用开发实战(完整版).part2

     《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...

    基于java的企业级应用开发:Bean的生命周期.ppt

    (3)如果Bean实现了BeanNameAware接口,则Spring调用Bean的setBeanName()方法传入当前Bean的id值。 (4)如果Bean实现了BeanFactoryAware接口,则Spring调用setBeanFactory()方法传入当前工厂实例的引用。 (5)...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI支持,引入spring-core.jar及...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    Spring动态加载bean后调用实现方法解析

    主要介绍了Spring动态加载bean后调用实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    spring在@Bean注解中initMethod调用方法异步

    来源于sofaboot

    普通类调用Spring bean对象

    NULL 博文链接:https://412887952-qq-com.iteye.com/blog/1479445

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

    NULL 博文链接:https://412887952-qq-com.iteye.com/blog/2292388

    Spring3.x企业应用开发实战(完整版) part1

     《Spring3.x企业应用开发实战》是在《精通Spring2.x——企业应用开发详解》的基础上,经过历时一年的重大调整改版而成的,本书延续了上一版本追求深度,注重原理,不停留在技术表面的写作风格,力求使读者在熟练...

    初始化后可访问Spring管理的Bean

    初始化后可访问Spring管理的Bean

    Spring MVC 入门实例

    如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用...

    Spring Boot中Bean定义方调用方式解析

    主要介绍了Spring Boot中Bean定义方调用方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    spring杂谈 作者zhang KaiTao

    1.25 在应用层通过spring特性解决数据库读写分离 1.26 context:component-scan扫描使用上的容易忽略的use-default-filters 1.27 idea内嵌jetty运行springmvc项目报ConversionFailedException 1.28 springmvc 3.2 @...

Global site tag (gtag.js) - Google Analytics