Spring中直接获取bean的工具类

欢迎转载,转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/23/6342977.aspx

 

Spring 中直接获取 bean 的工具类

此方法不需要将bean在配置文件中注入到使用类

1. 建立 listener ,启动时加载配置

[java]  view plain copy print ?
  1. public class ApplicationListener implements ServletContextListener {  
  2.     public void contextInitialized(ServletContextEvent event) {  
  3.        ServletContext context = event.getServletContext();  
  4.        try {  
  5.            initContextUtil(context);  
  6.             
  7.        } catch (Exception ex) {  
  8.            ex.printStackTrace();  
  9.        }  
  10.     }  
  11.    
  12.     public void contextDestroyed(ServletContextEvent sce) {  
  13.    
  14.     }  
  15.    
  16.         
  17.     private void initContextUtil(ServletContext context) throws Exception{  
  18.            ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(context);  
  19.            ContextUtil.setContext(ctx);  
  20.             
  21.     }  
  22. }  
  

 

2. 对应的工具类

[java]  view plain copy print ?
  1. public class ContextUtil {  
  2.     private static ApplicationContext context;  
  3.     public static ApplicationContext getContext() {  
  4.        return context;  
  5.     }  
  6.     public static Object getBean(String beanId) throws Exception {  
  7.        Object bean = context.getBean(beanId);  
  8.        if (bean == null)  
  9.            return null;  
  10.        return bean;  
  11.     }  
  12.     public static void setContext(ApplicationContext ctx) {  
  13.        context = ctx;  
  14.     }  
  15. }  

3.  web.xml 中配置对应的 listener

[xhtml]  view plain copy print ?
  1. <listener>  
  2.        <listener-class>  
  3.            com.test.listener.ApplicationListener  
  4.        </listener-class>  
  5. </listener>  

4. 使用    根据在 application 中配置的 bean  id 获取对应的 dao 实例

XXDAO  xxDao =(XXDAO)ContextUtil.getContext ().getBean( "xxDAO" );

 

若是非WEB工程使用spring

修改如下:【注意配置文件路径的修改】

将context初始化方法修改如下,并在程序启动时调用

[java]  view plain copy print ?
  1. public static void initApplicationContext() {  
  2.         System.out.println("初始化context....开始");  
  3.         ApplicationContext context = new ClassPathXmlApplicationContext(  
  4.                 "classpath:config/spring-config.xml");  
  5.         ContextUtil.setContext(context);  
  6.         System.out.println("初始化context....结束");  
  7.     }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值