手動(dòng)獲取spring的ApplicationContext和bean對(duì)象

          WEB項(xiàng)目:

          方法1:

          1
          ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc)

           方法2:

          1
          ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc)

           方法3:

          1
          寫(xiě)一個(gè)工具類(lèi)類(lèi)繼承ApplicationObjectSupport,并將這個(gè)加入到spring的容器

           方法4:

          1
          寫(xiě)一個(gè)工具類(lèi)類(lèi)繼承WebApplicationObjectSupport,并將這個(gè)加入到spring的容器

           方法5:(推薦)

          1
          寫(xiě)一個(gè)工具類(lèi)實(shí)現(xiàn)ApplicationContextAware接口,并將這個(gè)加入到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的工具類(lèi)
           * @author yzl
           *
           */
          @SuppressWarnings({ "rawtypes", "unchecked" })
          public class SpringContextUtils implements ApplicationContextAware {
              private static ApplicationContext applicationContext;
           
              public void setApplicationContext(ApplicationContext arg0)
                      throws BeansException {
                  applicationContext = arg0;
              }
           
              /**
               * 獲取applicationContext對(duì)象
               * @return
               */
              public static ApplicationContext getApplicationContext(){
                  return applicationContext;
              }
               
              /**
               * 根據(jù)bean的id來(lái)查找對(duì)象
               * @param id
               * @return
               */
              public static Object getBeanById(String id){
                  return applicationContext.getBean(id);
              }
               
              /**
               * 根據(jù)bean的class來(lái)查找對(duì)象
               * @param c
               * @return
               */
              public static Object getBeanByClass(Class c){
                  return applicationContext.getBean(c);
              }
               
              /**
               * 根據(jù)bean的class來(lái)查找所有的對(duì)象(包括子類(lèi))
               * @param c
               * @return
               */
              public static Map getBeansByClass(Class c){
                  return applicationContext.getBeansOfType(c);
              }
          }

           

           

          非WEB項(xiàng)目

          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:地址");
          沒(méi)有classpath的話就是從當(dāng)前的工作目錄

          posted on 2016-06-18 23:56 youngturk 閱讀(259) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 筆試題 、Java基礎(chǔ)

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

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結(jié)構(gòu)
          4 口語(yǔ)英語(yǔ)

          常用鏈接

          留言簿(6)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          相冊(cè)

          EJB學(xué)習(xí)

          Flex學(xué)習(xí)

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 哈巴河县| 双牌县| 荣成市| 越西县| 屏南县| 平江县| 澄城县| 阳山县| 丰都县| 七台河市| 公主岭市| 宿迁市| 扬州市| 黑山县| 同德县| 宜兴市| 承德县| 通山县| 阿拉善右旗| 亚东县| 开鲁县| 汕头市| 洛南县| 额尔古纳市| 东乡县| 宁晋县| 万荣县| 云霄县| 定西市| 抚宁县| 石门县| 金溪县| 博兴县| 格尔木市| 沙雅县| 青铜峡市| 治县。| 翁牛特旗| 安陆市| 武清区| 大城县|