⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tapestryspringbeanfactoryholderimpl.java

📁 这是本人在学习T4SH框架时
💻 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 + -