久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    獲取spring的ApplicationContext幾種方式【轉】

     liang1234_ 2020-03-25

    轉自:http://blog.sina.com.cn/s/blog_9c7ba64d0101evar.html

    Java類獲取spring 容器的bean

    常用的5種獲取spring 中bean的方式總結:

    方法一:在初始化時保存ApplicationContext對象

    代碼:

    1 ApplicationContext ac = new FileSystemXmlApplicationContext('applicationContext.xml'); 2 ac.getBean('beanId');

    說明:這種方式適用于采用Spring框架的獨立應用程序,需要程序通過配置文件手工初始化Spring的情況。

    方法二:通過Spring提供的工具類獲取ApplicationContext對象
    代碼:

    復制代碼
    1 import org.springframework.web.context.support.WebApplicationContextUtils;
    2 ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
    3 ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
    4 ac1.getBean('beanId');
    5 ac2.getBean('beanId');
    復制代碼

    說明:這種方式適合于采用Spring框架的B/S系統,通過ServletContext對象獲取ApplicationContext對象,然后在通過它獲取需要的類實例。

    上面兩個工具方式的區別是,前者在獲取失敗時拋出異常,后者返回null。

    方法三:繼承自抽象類ApplicationObjectSupport
    說明:抽象類ApplicationObjectSupport提供getApplicationContext()方法,可以方便的獲取到ApplicationContext。
    Spring初始化時,會通過該抽象類的setApplicationContext(ApplicationContext context)方法將ApplicationContext 對象注入。

    方法四:繼承自抽象類WebApplicationObjectSupport
    說明:類似上面方法,調用getWebApplicationContext()獲取WebApplicationContext

    方法五:實現接口ApplicationContextAware
    說明:實現該接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 對象。
    Spring初始化時,會通過該方法將ApplicationContext對象注入。

    雖 然,spring提供了后三種方法可以實現在普通的類中繼承或實現相應的類或接口來獲取spring 的ApplicationContext對象,但是在使用是一定要注意實現了這些類或接口的普通java類一定要在Spring 的配置文件application-context.xml文件中進行配置。否則獲取的ApplicationContext對象將為null。



    如下是我實現了ApplicationContextAware接口的例子

    復制代碼
    1 package quartz.util; 2 3 import org.springframework.beans.BeansException; 4 import org.springframework.context.ApplicationContext; 5 import org.springframework.context.ApplicationContextAware; 6 7 public class SpringConfigTool implements ApplicationContextAware{//extends ApplicationObjectSupport{ 8 9 private static ApplicationContext context = null; 10 private static SpringConfigTool stools = null; 11 public synchronized static SpringConfigTool init(){ 12 if(stools == null){ 13 stools = new SpringConfigTool(); 14 } 15 return stools; 16 } 17 18 public void setApplicationContext(ApplicationContext applicationContext) 19 throws BeansException { 20 context = applicationContext; 21 } 22 23 public synchronized static Object getBean(String beanName) { 24 return context.getBean(beanName); 25 } 26 27 }
    復制代碼

    XML文件中的配置信息

    最后提供一種不依賴于servlet,不需要注入的方式
    注意一點,在服務器啟動時,Spring容器初始化時,不能通過以下方法獲取Spring 容器,如需細節可以觀看源碼

    復制代碼
    1 org.springframework.web.context.ContextLoader
    2 
    3 Title1 import org.springframework.web.context.ContextLoader; 
    4 import org.springframework.web.context.WebApplicationContext; 
    5  
    6 WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext(); 
    7   wac.getBean(beanID);
    復制代碼

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 成人片黄网站色大片免费观看| 婷婷色爱区综合五月激情韩国| 国产不卡一区二区在线| 亚洲人成网站77777在线观看| 欧美孕妇变态孕交粗暴| 国产成熟女人性满足视频| 西西人体大胆444WWW| 国产成人AV一区二区三区在线| 欧洲精品一卡2卡三卡4卡影视| 亚洲人成电影在线天堂色| 国产精品久久久天天影视香蕉| 欧美大胆老熟妇乱子伦视频| 亚洲乱理伦片在线观看中字| 久久丫精品国产亚洲AV| 男女激情一区二区三区| FC2免费人成在线视频| 久久精品久久电影免费理论片| 亚洲欧美中文日韩V日本| 国产精品毛片一区二区| 亚洲国产精品久久久天堂麻豆宅男 | 成在线人午夜剧场免费无码| 人妻系列无码专区免费| 亚洲AV鲁丝一区二区三区| 日本一区二区三区专线| 亚洲AV永久无码精品一区二区国产| 丁香五月婷激情综合第九色| 国产精品久久国产精品99| 在线一区二区中文字幕| 99久久国产综合精品女图图等你| 亚洲国产精品日韩在线| 精品无码三级在线观看视频| 国产富婆推油SPA高潮了| 久久久久久综合网天天 | 久久精品第九区免费观看 | 色翁荡熄又大又硬又粗又视频| 四虎成人精品永久网站| 欧美成人家庭影院| 女高中生强奷系列在线播放| 欧美丰满熟妇xxxx性| 精品国产一区二区三区2021| 怡红院一区二区三区在线|