手動獲取spring的ApplicationContext和bean對象

          WEB項目:

          方法1:

          1
          ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc)

           方法2:

          1
          ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc)

           方法3:

          1
          寫一個工具類類繼承ApplicationObjectSupport,并將這個加入到spring的容器

           方法4:

          1
          寫一個工具類類繼承WebApplicationObjectSupport,并將這個加入到spring的容器

           方法5:(推薦)

          1
          寫一個工具類實現ApplicationContextAware接口,并將這個加入到spring的容器

           示例:

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          17
          18
          19
          20
          21
          22
          23
          24
          25
          26
          27
          28
          29
          30
          31
          32
          33
          34
          35
          36
          37
          38
          39
          40
          41
          42
          43
          44
          45
          46
          47
          48
          49
          50
          51
          52
          53
          54
          import java.util.Map;
          import org.springframework.beans.BeansException;
          import org.springframework.context.ApplicationContext;
          import org.springframework.context.ApplicationContextAware;
           
          /**
           * 獲取ApplicationContext和Object的工具類
           * @author yzl
           *
           */
          @SuppressWarnings({ "rawtypes", "unchecked" })
          public class SpringContextUtils implements ApplicationContextAware {
              private static ApplicationContext applicationContext;
           
              public void setApplicationContext(ApplicationContext arg0)
                      throws BeansException {
                  applicationContext = arg0;
              }
           
              /**
               * 獲取applicationContext對象
               * @return
               */
              public static ApplicationContext getApplicationContext(){
                  return applicationContext;
              }
               
              /**
               * 根據bean的id來查找對象
               * @param id
               * @return
               */
              public static Object getBeanById(String id){
                  return applicationContext.getBean(id);
              }
               
              /**
               * 根據bean的class來查找對象
               * @param c
               * @return
               */
              public static Object getBeanByClass(Class c){
                  return applicationContext.getBean(c);
              }
               
              /**
               * 根據bean的class來查找所有的對象(包括子類)
               * @param c
               * @return
               */
              public static Map getBeansByClass(Class c){
                  return applicationContext.getBeansOfType(c);
              }
          }

           

           

          非WEB項目

          1
          ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml")

          可選的操作方法有:

          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          一:
          String[]   path={"WebRoot/WEB-INF/applicationContext.xml","WebRoot/WEB-INF/applicationContext_task.xml"};
          ApplicationContext context = new FileSystemXmlApplicationContext(path);
           
          二:
          String path="WebRoot/WEB-INF/applicationContext*.xml";
          ApplicationContext context = new FileSystemXmlApplicationContext(path);
           
          三:
          ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:地址");
          沒有classpath的話就是從當前的工作目錄

          posted on 2016-06-18 23:56 youngturk 閱讀(272) 評論(0)  編輯  收藏 所屬分類: 筆試題Java基礎

          <2016年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導航

          統計

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結構
          4 口語英語

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          EJB學習

          Flex學習

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 灵璧县| 瑞金市| 华池县| 阜城县| 红桥区| 镇康县| 凉山| 泽州县| 海林市| 古交市| 新田县| 新龙县| 汉中市| 华宁县| 墨玉县| 化隆| 桦南县| 深州市| 辽阳县| 峨边| 华池县| 高唐县| 汝南县| 桦川县| 格尔木市| 沅江市| 浦城县| 崇信县| 松溪县| 高陵县| 宜兴市| 大同县| 郸城县| 尼勒克县| 祁东县| 盐源县| 和田县| 衡水市| 泽州县| 固阳县| 互助|