📄 tapestryspringbeanfactoryholderimpl.java
字号:
package com.zxx.common.util;
/**
* 总体功能描述: 通过hivemind注入获取spring的bean容器
* <p>版权所有:中企动力
* <p>未经本公司许可,不得以任何方式复制或使用本程序任何部分
* @author 陶维
* Created on 2006-08-31
*/
import org.apache.hivemind.events.RegistryShutdownListener;
import org.apache.hivemind.lib.impl.SpringBeanFactoryHolderImpl;
import org.apache.tapestry.web.WebContext;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.context.WebApplicationContext;
public class TapestrySpringBeanFactoryHolderImpl extends
SpringBeanFactoryHolderImpl implements RegistryShutdownListener {
private WebContext context;
public BeanFactory getBeanFactory() {
if(super.getBeanFactory()==null) {
super.setBeanFactory(getWebApplicationContext(this.getContext()));
}
return super.getBeanFactory();
}
public void registryDidShutdown() {
((ConfigurableApplicationContext) super.getBeanFactory()).close();
}
private static WebApplicationContext getWebApplicationContext(WebContext wc) {
Object obj = wc
.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
if (obj == null) {
return null;
}
if (obj instanceof RuntimeException) {
throw (RuntimeException) obj;
}
if (obj instanceof Error) {
throw (Error) obj;
}
if (!(obj instanceof WebApplicationContext)) {
throw new IllegalStateException("获取不到WebApplicationContext对象:"
+ obj);
}
return (WebApplicationContext) obj;
}
public WebContext getContext() {
return context;
}
public void setContext(WebContext context) {
this.context = context;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -