手動獲取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

          生活保健

          解析文件

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 建宁县| 息烽县| 云阳县| 武山县| 加查县| 灯塔市| 石屏县| 天峻县| 永丰县| 阳信县| 溆浦县| 阳西县| 黎平县| 轮台县| 基隆市| 嘉义县| 镇康县| 喜德县| 武穴市| 密山市| 策勒县| 黄平县| 濮阳市| 张北县| 黄龙县| 临安市| 秦安县| 金溪县| 西宁市| 泗洪县| 红原县| 土默特右旗| 哈尔滨市| 云林县| 都昌县| 麻江县| 波密县| 刚察县| 元朗区| 彩票| 鞍山市|