struts2配置文件的加载顺序(三)

web容器启动之后,struts的核心过滤器会被加载,它的init方法会被执行。init方法里面加载了一些配置。

如下图:


点击initDispathcer:


点击init():


首先,看:

if (configurationManager == null) {
	configurationManager = createConfigurationManager(DefaultBeanSelectionProvider.DEFAULT_BEAN_NAME);
}

configurationManager顾名思义,就是配置的管理者。它就是一个类,这个类在设计的时候会放很多的集合。当配置文件加载完,都放到这个集合里面。

点击:init_DefaultProperties(); // [1]

进入这个方法,确实,把一个东西add到configurationManager。
点击:new DefaultPropertiesProvider()

如类的注释所描述,加载默认的配置文件struts.properites


就是上面这个配置文件。这里面放的是常量。就是有很多变量它先把值写好了,一启动服务器会加载这些常量值。例如,struts.i18n.encoding=UTF-8。

接下来,继续往下看:


接下来,看第二个加载的配置 init_TraditionalXmlConfigurations(); // [2]


点击如上的常量:


我们先找到struts-default.xml



这里配置的是所有的核心的功能。

我们之前说过要经过一些拦截器:


这些拦截器就在struts-default.xml中:


比如,<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>,这个是做数据的封装的。


struts.xml就是我们自己写的配置文件。


init_LegacyStrutsProperties(); // [3]加载自定义的struts.properties.

在src下,我们可以写一个struts.properties,struts会帮我们加载。但是,我们一般不这么做。

init_FilterInitParameters() ;[6] -- 加载web.xml

当我们启动服务器,服务器会加载web.xml,然后创建核心过滤器,init方法会执行,会加载很多配置文件。其中web.xml又会被加载一次。

我们使用struts,重点玩的就是struts.xml。如果,我们要修改一些常量,就在struts.xml中配置。

注意:后加载的配置文件会覆盖先加载的配置文件。

**入门总结之Struts2框架配置文件加载的顺序**
	
	0. 需要掌握
		* 加载了哪些个配置文件(重点的)
		* 配置文件的名称是什么
		* 配置文件的位置
		* 配置文件的作用

	1. Struts2框架的核心是StrutsPrepareAndExecuteFilter过滤器,该过滤器有两个功能
		* Prepare		-- 预处理,加载核心的配置文件
		* Execute		-- 执行,让部分拦截器执行
	
	2. StrutsPrepareAndExecuteFilter过滤器会加载哪些配置文件呢?
		* 通过源代码可以看到具体加载的配置文件和加载配置文件的顺序
			* init_DefaultProperties(); 				-- 加载org/apache/struts2/default.properties
		    * init_TraditionalXmlConfigurations();		-- 加载struts-default.xml,struts-plugin.xml,struts.xml
        	* init_LegacyStrutsProperties();			-- 加载自定义的struts.properties.
        	* init_CustomConfigurationProviders();		-- 加载用户自定义配置提供者
        	* init_FilterInitParameters() ;				-- 加载web.xml
	
	3. 重点了解的配置文件
		* default.properties		-- 在org/apache/struts2/目录下,代表的是配置的是Struts2的常量的值
		* struts-default.xml		-- 在Struts2的核心包下,代表的是Struts2核心功能的配置(Bean、拦截器、结果类型等)
		* struts.xml				-- 重点中的重点配置,代表WEB应用的默认配置,在工作中,基本就配置它就可以了!!(可以配置常量)
		* web.xml					-- 配置前端控制器(可以配置常量)
		
		* 注意:
			* 前3个配置文件是struts2框架的默认配置文件,基本不用修改。
			* 后3个配置文件可以允许自己修改struts2的常量。但是有一个特点:后加载的配置文件修改的常量的值,会覆盖掉前面修改的常量的值。
	
	4. 总结(重点掌握的配置文件)
		* 先加载default.properties文件,在org/apache/struts2/default.properties文件,都是常量。
		* 又加载struts-default.xml配置文件,在核心的jar包最下方,struts2框架的核心功能都是在该配置文件中配置的。
		* 再加载struts.xml的配置文件,在src的目录下,代表用户自己配置的配置文件
		* 最后加载web.xml的配置文件
		
		* 后加载的配置文件会覆盖掉之前加载的配置文件(在这些配置文件中可以配置常量)
	
	5. 注意一个问题
		* 哪些配置文件中可以配置常量?
			* default.properties		-- 默认值,咱们是不能修改的!!
			* struts.xml				-- 可以配置,开发中基本上都在该配置文件中配置常量
			* struts.properties			-- 可以配置,基本不会在该配置文件中配置
			* web.xml					-- 可以配置,基本不会在该配置文件中配置
		
		* 后加载的配置文件会覆盖掉之前加载的配置!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值