三个类实现通过spring启动web容器

对于struts2这样的web框架,需要整合spring来管理所有的bean,spring本身也提供了ContextLoaderListener来初始化容器。可以通过扩展ContextLoaderListener来控制spring。


[img]http://dl.iteye.com/upload/attachment/0063/8373/cffdd761-1b5e-3915-935c-1ea4dbb96fec.png[/img]

WebxApplicationContext 覆盖spring默认的Configlocations。

package com.you.atlas.webx.context;

import org.springframework.web.context.support.XmlWebApplicationContext;

public class WebxApplicationContext extends XmlWebApplicationContext {

public final static String WEBX_CONFIGURATION_LOCATION = "/WEB-INF/webx.xml";
public final static String WEBX_COMPONENT_CONFIGURATION_LOCATION_PATTERN = "/WEB-INF/webx-*.xml";

protected String[] getDefaultConfigLocations() {

if (getNamespace() != null) {
return new String[] { WEBX_COMPONENT_CONFIGURATION_LOCATION_PATTERN.replace("*", getNamespace()) };
} else {
return new String[] { WEBX_CONFIGURATION_LOCATION };
}
}


}


WebxContextLoader 负责初始化 WebxApplicationContext


package com.you.atlas.webx.context;

import javax.servlet.ServletContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContextException;
import org.springframework.web.context.ContextLoader;

public class WebxContextLoader extends ContextLoader {

@Autowired
protected Class<?> determineContextClass(ServletContext servletContext) throws ApplicationContextException {
return getDefaultContextClass();
}

protected Class<?> getDefaultContextClass() {
return WebxApplicationContext.class;
}
}



WebxContextLoaderListener 负责初始化 WebxContextLoader

package com.you.atlas.webx.context;

import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.ContextLoaderListener;

public class WebxContextLoaderListener extends ContextLoaderListener{


protected ContextLoader createContextLoader() {
return new WebxContextLoader();
}
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值