spring获取bean实例
2016-12-29 00:00
363 查看
在web项目中获取springbean,有时候我们需要在非spring组件中获取springbean,我们如果希望在我们的项目中任何位置都能拿到同一个ApplicationContext来获取IOC容器中的资源,就要让Spring将上下文环境填充到我们能获取的地方
最简单的方案就是自己写一个SpringContextUtil来获取。
代码如下:
有一个quartz任务需要执行,它是在spring组件之外的,代码如下:
这样通过直接
最简单的方案就是自己写一个SpringContextUtil来获取。
代码如下:
public class SpringContextUtil implements ApplicationContextAware { private static final Logger logger = LoggerFactory.getLogger(SpringContextUtil.class); private static ApplicationContext context = null; /* * @Title: setApplicationContext * @Description: spring获取bean工具类 * @param applicationContext * @throws BeansException * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext) */ @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { SpringContextUtil.context = applicationContext; } @SuppressWarnings("unchecked") public static <T> T getBean(String beanName) { return (T) SpringContextUtil.context.getBean(beanName); } public static String getMessage(String key) { return context.getMessage(key, null, Locale.getDefault()); } }
有一个quartz任务需要执行,它是在spring组件之外的,代码如下:
public class VisitorWriteTask extends QuartzJobBean { private static final Logger logger = LoggerFactory.getLogger(VisitorWriteTask.class); @Override protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { this.work(); } public void work() { try { logger.info("VisitorWriteTask is start"); VisitorService visitorService = SpringContextUtil.getBean("visitorService"); visitorService.writeVisitor(); logger.info("VisitorWriteTask is end"); } catch (Exception e) { logger.error(e.getMessage()); } } }
这样通过直接
SpringContextUtil.getBean("visitorService")就可以获得visitorService这个实例bean。
相关文章推荐
- 获取spring bean 容器中实例,非创建新实例
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
- Spring中通过工厂方法获取bean实例
- spring-项目启动下获取Bean实例
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
- 获取SpringMVC上下文bean实例-SpringContextUtil
- spring-如何在项目启动的情况下获取Bean实例
- S2SH框架中,Spring通过注解获取bean实例
- 在jsp中直接获取spring中的bean实例
- [Spring][Bean]Spring配置文件、属性注入、从IOC容器获取实例
- 在完全由Spring管理的环境中使用Spring的Context获取Bean实例
- Spring 一、 之Bean容器初始化以及bean实例的获取
- spring获取bean 实例
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- 自定义SpringContextHolder获取bean实例
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
- 获取Spring IOC容器代理的Bean实例的几种方式
- spring获取类型为FactoryBean的factory实例和其生产的实例