中配置spring的几种方式 以及 Spring获取Bean的几种方式

时间:2025-02-14 18:59:17
spring有三种启动方式,使用ContextLoaderServlet,ContextLoaderListener和ContextLoaderPlugIn
spring3.0及以后版本中已经删除ContextLoaderServlet 和Log4jConfigServlet
可以采用余下两种启动方式ContextLoaderListener和ContextLoaderPlugIn
建议使用ContextLoaderListener N0:1
       <!--推荐使用此种方式-->

 
 
  1. <listener>  
  2.     <listener-class>  
  3.           
  4.     </listener-class>  
  5. </listener>   
  6. <!--contextConfigLocation在 ContextLoaderListener类中的默认值是 /WEB-INF/-->  
  7. <context-param>  
  8.     <param-name>contextConfigLocation</param-name>  
  9.     <param-value>/WEB-INF/</param-value>  
  10.     <!-- <param-value>classpath:applicationContext*.xml</param-value> -->  
  11. </context-param>  
 <listener>
		<listener-class>
			
		</listener-class>
	</listener> 
	<!--contextConfigLocation在 ContextLoaderListener类中的默认值是 /WEB-INF/-->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/</param-value>
		<!-- <param-value>classpath:applicationContext*.xml</param-value> -->
	</context-param>

N0:2 <!--spring3.0之后不再支持此种方式-->
  1. <servlet>  
  2.     <servlet-name>context</servlet-name>  
  3.     <servlet-class></servlet-class>  
  4.     <load-on-startup>1</load-on-startup>  
  5. </servlet>  
	<servlet>
		<servlet-name>context</servlet-name>
		<servlet-class></servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

N0:3 <!--要导入-3.0.包,在struts2.0及以后版本不支持此种方式加载spring-->
  1. <plug-in className="">  
  2.               <set-property property="contextConfigLocation" value="/WEB-INF/"/>  
  3.       </plug-in>  
<plug-in className="">
              <set-property property="contextConfigLocation" value="/WEB-INF/"/>
      </plug-in>
<!--Spring获取Bean的几种方式  /jerry-zhaoj/articles/-->

通过xml配置文件

    bean配置在xml里面,spring提供两种方式读取配置文件得到ApplicationContext.

FileSystemXmlApplicationContext

    通过程序在初始化的时候,导入Bean配置文件,然后得到Bean实例:

  1. ApplicationContext oAC = new FileSystemXmlApplicationContext””)  
  2. oAC .getBean(”bean01″);  
ApplicationContext oAC = new FileSystemXmlApplicationContext””)
oAC .getBean(”bean01″);


WebApplicationContextUtil

     在B/S系统中,通常在初始化bean的配置文件,然后由WebAppliCationContextUtil得到ApplicationContext.例如:

  1. ApplicationContext ctx = (ServletContext sc);  
  2. //ApplicationContext ctx =  (ServletContext sc);  
ApplicationContext ctx = (ServletContext sc);
//ApplicationContext ctx =  (ServletContext sc);


getRequiredWebApplicationContext和getWebApplicationContext的区别是,获取失败时候,getRequiredWebApplicationContext抛出异常,getWebApplicationContext抛出null

ApplicationObjectSupport

   抽象类,它提供getApplicationContext()方法,可以方便的获取到ApplicationContext。Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContextcontext)方法将ApplicationContext 对象注入。

WebApplicationObjectSupport

  抽象类,它提供getWebApplicationContext()获WebApplicationContext

ApplicationContextAware

 接口类,实现该接口的setApplicationContext(ApplicationContextcontext)方法,并保存ApplicationContext对象。Spring初始化时,会通过该方法将ApplicationContext对象注入。