java学习笔记——spring 之 ioc容器在项目中的使用(创建与销毁)

通常在我们的项目中

ioc容器创建和销毁都要在合适的时机完成;

     项目启动:{

          IOC创建完成

     }

 

     项目销毁{

          IOC销毁;

     }

 

我们可以写一个监听器完成这个工作;

但是其实Spring已经帮我们写好了这个监听器;

 <!-- needed for ContextLoaderListener -->

    <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath:applicationContext.xml</param-value>

    </context-param>

 

    <!-- Bootstraps the root web application context before servlet initialization -->

    <listener>

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

    </listener>

只需要在web项目下的 web.xml文件中加入contextloaderlistener标签,就会生成上边的代码,然后配置<param-value>classpath:applicationContext.xml</param-value>就可以啦。

java学习笔记——spring 之 ioc容器在项目中的使用(创建与销毁)

 

java学习笔记——spring 之 ioc容器在项目中的使用(创建与销毁) 

 这个监听器创建好的ioc容器在 ContextLoader类中

ContextLoaderListener类 继承自ContextLoader类---

/**这个属性就是ioc容器 */

private WebApplicationContext context;

 

有一个静态方法能获取context属性

getCurrentWebApplicationContext

 

使用方法:

我们可以写一个工具类来获取ioc容器中的对象,方法名就叫getBean;

public class WebUtils {
    
    //private static ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
    /**
     * 从ioc容器中获取组件的方法
     * @param clazz
     * @return
     */
    public static <T>T getBean(Class<T> clazz){
        //获取ioc容器
        WebApplicationContext ioc = ContextLoader.getCurrentWebApplicationContext();
        return ioc.getBean(clazz);
    }

}

 

还有 需要注意的是:从上面配置web.xml可以看出来,ContextLoaderListener是spring中web包下的一个类,所以我们需要导入web包,否则出错!!!!