spring多配置文件加载

spring多配置文件加载

 

在项目中会涉及到多个spring的配置文件,在我所接触的项目中,只用到了两种不同的方法进行配置,有其他好办法的,欢迎讨论。 
方法一: 
在web.xml文件中作如下配置: 
<context-param> 
<param-name>contextConfigLocation</param-name> 
<param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value> 
</context-param>

<listener> 
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener>

用ContextLoaderListener跟contextConfigLocation配合使用,contextConfigLocation用来指定系统配置文件的名称跟路径,ContextLoaderListener为监听器,这个就不多说了。 
这个方式的优点是比较优雅,通俗易懂,不用修改什么代码。

方法二: 
把几个配置文件写到一个配置文件中: 
如创建这样一个配置文件:BeanRefFactory.xml 
在这个配置文件里配置如下: 
<beans> 
<bean id="default" class="org.springframework.context.support.ClassPathXmlApplicationContext"> 
<constructor-arg> 
<list> 
<value>applicationContext.xml</value> 
<value>applicationContext-business.xml</value> 
<value>applicationContext-scheduler.xml</value> 
</list> 
</constructor-arg> 
</bean> 
</beans>

然后在web.xml文件中,使用自己定义一个ContextLoaderServlet来启动,这个ContextLoaderServlet可以继承HttpServlet,然后在它的init()方法里取得BeanFactory,代码如下:

public class ContextLoaderServlet extends HttpServlet 

public ContextLoaderServlet() 

}

public void init() 
throws ServletException 

//这个参数里的名字就是我们在BeanRefFactory.xml里定义的bean的名字。 
DefaultBeanFactory.getFactory("default"); 
}

public void destroy() 


}

然后定义一个DefaultBeanFactory类: 
public class DefaultBeanFactory 

protected static final BeanFactory getFactory(String s) 

BeanFactoryLocator beanfactorylocator = SingletonBeanFactoryLocator.getInstance(); 
BeanFactoryReference beanfactoryreference = beanfactorylocator.useBeanFactory(s); 
return beanfactoryreference.getFactory(); 

}


最后在web.xml文件中配置如下: 
<servlet> 
<servlet-name>context</servlet-name> 
<servlet-class>com.lixh.web.servlet.ContextLoaderServlet</servlet-class> 
<load-on-startup>1</load-on-startup> 
</servlet>

这种方式改动较多,也比较麻烦,但是可以根据自己的需要随机加载信息。

我还看到过一种方式,就是配置 
<servlet> 
<servlet-name>test</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet 
</servlet-class> 
<load-on-startup>1</load-on-startup> 
</servelt>

后来查看资料发现这是spring MVC的用法,本人没用过spring MVC,在这里贴出来是不想把这些方式混淆,有个说明罢了。

转载于:https://www.cnblogs.com/faylz/archive/2013/05/06/3062294.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值