/* SpringUtil.java {{IS_NOTE Purpose: Description: History: Thu Jun 1 13:53:53 2006, Created by henrichen }}IS_NOTE Copyright (C) 2006 Potix Corporation. All Rights Reserved. {{IS_RIGHT }}IS_RIGHT */ package org.zkoss.zkplus.spring; import org.springframework.beans.factory.BeanNotOfRequiredTypeException; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import org.zkoss.zk.ui.Execution; import org.zkoss.zk.ui.Executions; import org.zkoss.zk.ui.UiException; /** * SpringUtil, a Spring utility. * <p>Applicable to Spring Framework version 2.x or later</p> * @author henrichen */ public class SpringUtil { /** * Get the spring application context. */ public static ApplicationContext getApplicationContext() { Execution exec = Executions.getCurrent(); if (exec == null) { throw new UiException("SpringUtil can be called only under ZK environment!"); } return WebApplicationContextUtils .getRequiredWebApplicationContext(exec.getDesktop().getWebApp().getServletContext()); } /** * Get the spring bean by the specified name. */ public static Object getBean(String name) { Object o = null; try { if (getApplicationContext().containsBean(name)) { o = getApplicationContext().getBean(name); } } catch (NoSuchBeanDefinitionException ex) { // ignore } return o; } /** * Get the spring bean by the specified name and class. */ public static Object getBean(String name, Class cls) { Object o = null; try { if (getApplicationContext().containsBean(name)) { o = getApplicationContext().getBean(name, cls); } } catch (NoSuchBeanDefinitionException ex) { // ignore } catch (BeanNotOfRequiredTypeException e) { // ignore } return o; } }