/* 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;
}
}