您的位置:首页 > 编程语言 > Java开发

spring 项目中获取bean 的方法

2012-08-01 16:09 399 查看
1、Web工程:

     1)ContextLoaderListener.getCurrentWebApplicationContext ().getBean ("beanName"); 

     2)使用servletContext来获取ApplicationContext

          ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc); 

          ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc); 

          这两中方式的区别在于前者在获取失败时会抛出异常,而后者在获取失败时会返回null

     3)自己写一个listener实现ServletContextListener接口

          web.xml中配置好listener

          <listener> 

        <listener-class>com.ibatis.jpetstore.util.SpringInit</listener-class> 

</listener>

listener实现类

public class SpringInit implements ServletContextListener { 

    

    private static WebApplicationContext springContext; 

    

    public SpringInit() { 

        super(); 

    } 

    

    public void contextInitialized(ServletContextEvent event) { 

        springContext = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext()); 

    } 

    

    public void contextDestroyed(ServletContextEvent event) { 

    } 

    

    public static ApplicationContext getApplicationContext() { 

        return springContext; 

    } 

    



2、普通Java工程:

     1)写一个类实现ApplicationContextAware接口

       /**

*

*/

public class ApplicationContextUtil implements ApplicationContextAware

{

    private static ApplicationContext context;//声明一个静态变量保存

    @SuppressWarnings ("static-access")

    @Override

    public void setApplicationContext (ApplicationContext context) throws BeansException

    {

        this.context = context;

       

    }

   

    public static ApplicationContext getContext(){

        return context;

    }

}

2)在Spring的配置文件中加入:<bean id="applicationContextUtil" class="net.carefx.platform.mdm.server.core.utils.ApplicationContextUtil" />
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring bean java null web