第一种方法,在servlet中
ServletContext servletContext =this.getServletContext();
WebApplicationContext wac = WebApplicationContextUtils.
getRequiredWebApplicationContext(servletContext);
User user = (User)wac.getBean("user");
第二种方法,做一个ApplicationContextAware的Bean,并实现setApplicationContext方法
public class ApplicationContextUtil implements ApplicationContextAware
{
private static ApplicationContext applicationContext = null;
/** Creates a new instance of ApplicationContextUtil */
public ApplicationContextUtil()
{
}
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException
{
this.applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext()
{
return applicationContext;
}
}
并做配置
<bean id="applicationContextUtil"
class="ApplicationContextUtil"/>
我的项目中有些地方用到了工厂模式+策略模式,所以部分策略对象是由工厂动态提供,这种对象中如果要获得由spring管理的对象,就需要一个工具类,这个类通过上面第二种方式获得Spring应用上下文,然后拿到指定对象,代码如下:
public class SpringUtil implements ApplicationContextAware{
private static ApplicationContext context;
public SpringUtil(){
}
public static <T> T getObject(String id,Class<T> clazz) throws BeanNotOfRequiredTypeException,NoSuchBeanDefinitionException,BeansException{
return context.getBean(id,clazz);
}
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
SpringUtil.context = applicationContext;
}
}
分享到:
相关推荐
总的来说,理解和管理Spring MVC和Spring的两套上下文是开发高质量Spring应用的重要环节。这涉及到Bean的生命周期管理、依赖注入以及不同上下文间的通信。正确配置和使用这两套上下文,能确保应用的稳定性和可维护性...
Spring Context是Spring框架的应用上下文,它充当了全局容器,存储了应用的所有bean以及它们之间的依赖关系。在Spring应用中,Context通常通过`ApplicationContext`接口来实例化,如`ClassPathXmlApplicationContext...
在提交任务时,可以将bean作为参数传递,或者在任务内部使用`ApplicationContextAware`接口获取应用上下文,从而获取bean。 4. **ApplicationContextAware**:让线程处理类实现`ApplicationContextAware`接口,...
`setApplicationContext` 方法用于设置应用上下文,而 `getBean` 方法用于从应用上下文中获取 Bean 对象。 在启动入口类中注入 applicationContext 在 SpringBoot 应用中,我们需要在启动入口类中注入 `...
Spring 应用上下文获取 Bean 是一个常见的操作,在 Spring 框架中获取 Bean 对象是非常重要的。本文将总结 Spring 应用上下文获取 Bean 的常用姿势实例,并对其实现方法和操作注意事项进行详细的分析和讲解。 一、...
在Spring中,ApplicationContext(应用程序上下文)是容器的核心,负责配置和管理应用中对象的生命周期和依赖关系。在实际开发过程中,经常需要从各个角落获取到这个ApplicationContext对象,以便于能够使用Spring...
在Web应用中,Spring通常会创建一个WebApplicationContext,它与Servlet上下文(ServletContext)关联。 **方法一:使用WebApplicationContextUtils** 在Servlet中,我们可以利用`WebApplicationContextUtils`工具...
这通常涉及到Spring的代理机制、AOP的切面定义、方法调用上下文以及EL的语法和功能。 Spring AOP是Spring框架的一个重要特性,它允许开发者创建具有横切关注点的模块,如日志记录、事务管理等。这些关注点可以被...
- `java.naming.factory.initial`: 初始上下文工厂类名。 - `java.naming.security.principal`: 访问WebLogic服务器所需的用户名。 - `java.naming.security.credentials`: 对应用户的密码。 #### 总结 通过...
AnnotationConfigApplicationContext是从一个或多个基于Java的配置类中加载Spring应用上下文的方式。通过使用@Configuration注解,可以将配置类作为上下文的来源。 2. AnnotationConfigWebApplicationContext ...
标题中的“上下文应用”可能指的是在软件开发中,尤其是Java或Spring框架中常见的“上下文(Context)”概念。上下文通常是指程序运行时的状态或环境,它可以包含对象、配置信息以及其他必要的数据,使得不同的组件...
在Spring Boot应用中,通常使用`AnnotationConfigApplicationContext`加载基于注解的配置。 2. 如果你的类是Spring的一部分,可以通过`@Autowired`注解注入`ApplicationContext`,然后在需要的地方使用它。 3. 或者...
在Spring Cloud Dalston中,应用程序上下文服务是构成微服务架构的关键组成部分。服务引导应用程序上下文是Spring Cloud的特色之一,它允许应用程序在启动时进行微服务的引导。开发者可以利用应用程序上下文层次结构...
通过在Spring配置中定义`SchedulerFactoryBean`,我们可以方便地配置Job和Trigger,并利用ApplicationContext获取Job的Bean实例。在测试或服务类中,我们可以利用这些配置启动Job,从而实现程序中的动态任务调度。这...
Spring Cloud Context 添加了一个引导上下文,作为主应用程序上下文的父上下文,负责加载外部配置属性和解密。通过设置 `spring.cloud.bootstrap.enabled`,可以选择启用或禁用引导过程。应用程序上下文层次结构允许...
在 Spring 中,ApplicationContext 是一个至关重要的接口,它是应用上下文的实现,负责管理bean的生命周期和装配。标题提到的“ClassPathXmlApplicationContext”是 Spring 提供的三种 ApplicationContext 实现之一...
无论选择哪种方式,Spring的ContextLoaderPlugin都是必要的,它会在Struts的ActionServlet启动时加载Spring的配置和应用程序上下文。 值得注意的是,Spring的AOP支持提供了拦截器,可以用来处理横切关注点,如日志...
6. Spring Context:是一个配置文件,提供了一个配置Spring应用的上下文环境,是容器的运行基础。 7. Spring Web MVC:是Spring的Web模块,它构建在Spring Context之上,提供了模型-视图-控制器(MVC)的实现。 ...